JavaScript. Подробное руководство, 6-е издание, стр. 191

<b>do {</b>

<b>var name = prompt(&quot;Введите ваше имя&quot;); // Вернет строку</b>

<b>var correct = confirm(&quot;Bы ввели '&quot; + name + '&quot;.\n&quot; + // Вернет логич. знач.</b>

<b>  &quot;Щелкните ОК, чтобы продолжить, &quot; +</b>

<b>  &quot;или Отмена, чтобы повторить ввод.&quot;);</b>

<b>} while(!correct)</b>

<b>alert(&quot;Привет, &quot; + name); // Выведет простое сообщение</b>

Методы

<b>alert(), confirm()</b>
и
<b>prompt()</b>
чрезвычайно просты в использовании, но правила хорошего дизайна требуют, чтобы они применялись как можно реже. Диалоги, подобные этим, нечасто используются в Веб, и большинство пользователей сочтет диалоговые окна, выводимые этими методами, выпадающими из обычной практики. Единственный вариант, когда имеет смысл обращаться к этим методам, - это отладка. JavaScript-программисты часто вставляют вызов метода
<b>alert()</b>
в программный код, пытаясь диагностировать возникшие проблемы.

Обратите внимание, что текст, отображаемый методами

<b>alert(), confirm()</b>
и
<b>prompt()</b>
в диалогах, - это обычный неформатированный текст. Его можно форматировать только пробелами, переводами строк и различными знаками пунктуации.

Методы

<b>confirm()</b>
и
<b>prompt()</b>
являются блокирующими, т.е. они не возвращают управление, пока пользователь не закроет отображаемые ими диалоговые окна. [32]

Это значит, что, когда выводится одно из этих окон, программный код прекращает выполнение, и текущий загружаемый документ, если таковой существует, прекращает загружаться до тех пор, пока пользователь не отреагирует на запрос. В большинстве броузеров метод alert() также является блокирующим и ожидает от пользователя закрытия диалогового окна, но это не является обязательные требованием. Полное описание этих методов приводится в справочных статьях

<b>Window.alert</b>
,
<b>Window.confirm</b>
и
<b>Window.prompt</b>
в четвертой части книги.

В дополнение к методам

<b>alert(), confirm()</b>
и
<b>prompt()</b>
в объекте
<b>Window</b>
имеется более сложный метод,
<b>showModalDialog(),</b>
отображающий модальный диалог, содержащий разметку HTML, и позволяющий передавать аргументы и получать возвращаемое значение. Метод
<b>ShowModalDialog()</b>
выводит модальный диалог в отдельном окне броузера. Первым аргументом методу передается URL, определяющий HTML-содержимое диалога. Во втором аргументе может передаваться произвольное значение (допускается передавать массивы и объекты), которое будет доступно сценарию в диалоге, как значение свойства
<b>window.dialogArguments</b>
. Третий аргумент - нестандартный список пар имя/значение, разделенных точками с запятой, который, если поддерживается, может использоваться для настройки размеров и других атрибутов диалогового окна. Для определения размеров окна диалога можно использовать параметры
<b>«dialogwidth»</b>
и
<b>«dialogheight»,</b>
а чтобы позволить пользователю изменять размеры окна, можно определить параметр
<b>&quot;resizable=yes&quot;.</b>

Окно, отображаемое эти методом, является модальным, и метод

<b>ShowModalDialog()</b>
не возвращает управление, пока окно не будет закрыто. После закрытия окна значение свойства
<b>window.returnValue</b>
становится возвращаемым значением метода. Обычно разметка HTML диалога должна включать кнопку ОК, которая записывает желаемое значение в свойство
<b>returnValue</b>
и вызывает
<b>window.close()</b>
(раздел 14.8.1.1).

В примере 14.4 приводится разметка HTML для использования с методом

<b>showModalDialog().</b>
Комментарий в начале примера включает пример вызова
<b>showModalDialog(),</b>
а на рис. 14.1 показан диалог, созданный вызовом из примера. Обратите внимание, что большая часть текста, отображаемого в диалоге, передается методу
<b>showModalDialog()</b>
во втором аргументе, а не является жестко определенной частью разметки HTML.

JavaScript. Подробное руководство, 6-е издание - i_020.jpg

Пример 14.4. HTML-файл для использования с функцией

<b>showModalDialog()</b>

<b>&lt;! --</b>

<b>Это не самостоятельный HTML-файл. Он должен вызываться методом </b>

<b>showModalDialog() и ожидает получить в свойстве window.dialogArguments массив строк.</b>

<b>Первый элемент массива - строка, отображаемая в верхней части диалога.</b>

<b>Все остальные элементы - метки для однострочных текстовых полей ввода.</b>

<b>Возвращает массив значений полей ввода после щелчка на кнопке Okay.</b>

<b>Этот файл используется следующим образом:</b>

<b>var р = showModalDialog(&quot;multiprompt,html&quot;,</b>

<b>    [&quot;Enter 3D point coordinates&quot;, &quot;x&quot;, &quot;y&quot;, &quot;z&quot;],</b>

<b>    &quot;dialogwidth:400; dialogheight:300; resizable:yes&quot;):</b>

<b>--&gt;</b>

<b>&lt;form&gt;</b>

<b>&lt;fieldset id=&quot;fields&quot;&gt;&lt;/fieldset&gt; &lt;!-- Тело, заполняемое сценарием ниже --&gt;</b>

<b>&lt;div style=&quot;text-align:center&quot;&gt;   &lt;!-- Кнопки закрытия диалога --&gt;</b>