window.alert(message)
Отображает модальное предупреждение с заданным сообщением и ожидает, пока пользователь его закроет.
result = window.confirm(message)
Отображает модальное приглашение OK/Cancel с заданным сообщением, ожидает, пока пользователь отклонит его, и возвращает true, если пользователь нажимает OK, и false, если пользователь нажимает Cancel.
result = window.prompt(message [, default])
Отображает подсказку модального текстового элемента управления с заданным сообщением, ожидает, пока пользователь отклонит ее, и возвращает введенное пользователем значение. Если пользователь отменяет приглашение, вместо этого возвращается null. Если присутствует второй аргумент, то заданное значение используется по умолчанию.
Логика, которая зависит от задач или микрозадач, таких как мультимедийные элементы, загружающие свои мультимедийные данные, останавливается при вызове этих методов.
Шаги метода alert() и alert(message):
1. Если мы не можем показать простые диалоги для объекта контекста this, то возвращаемся. 2. Если метод был вызван без аргументов, пусть сообщение message будет пустой строкой; в противном случае пусть сообщение message будет первым аргументом метода. 3. Установить сообщение message в результате нормализации новых строк данного сообщения message. 4. Установите сообщение message в результате необязательного усечения сообщения message. 5. Показать сообщение message пользователю, рассматривая U+000A LF как разрыв строки. 6. При необходимости сделайте паузу, ожидая, пока пользователь подтвердит получение сообщения.
Этот метод определяется с использованием двух перегрузок вместо использования необязательного аргумента по историческим причинам. Практическое значение этого заключается в том, что alert(undefined) обрабатывается как alert(«undefined»), а alert() обрабатывается как alert(«»).
Шаги метода подтверждения confirm(message):
1. Если мы не можем показать простые диалоги для объекта контекста this то возвращаем false. 2. Установить сообщение message в результате нормализации новых строк данного сообщения message. 3. Установите сообщение message в результате необязательного усечения сообщения message. 4. Покажите сообщение message пользователю, рассматривая U+000A LF как разрыв строки, и попросите пользователя ответить положительным или отрицательным ответом. 5. Сделайте паузу, пока пользователь не ответит положительно или отрицательно. 6. Если пользователь ответил положительно, вернуть true; в противном случае пользователь ответил отрицательно: верните false.
Шаги метода приглашения prompt(message, default):
1. Если мы не можем показать простые диалоги для объекта контекста this, то возвращаем null. 2. Установить сообщение message в результате нормализации новых строк данного сообщения message. 3. Установите сообщение message в результате необязательного усечения сообщения message. 4. Установите по умолчанию default результат необязательного усечения default. 5. Покажите сообщение message пользователю, рассматривая U+000A LF как разрыв строки, и попросите пользователя либо ответить строковым значением, либо прервать. Ответ должен быть по умолчанию равен значению, заданному по умолчанию default. 6. Пауза в ожидании ответа пользователя. 7. Если пользователь прервет работу, верните null; в противном случае вернуть строку, на которую ответил пользователь.
Чтобы дополнительно обрезать простую строку диалога (optionally truncate a simple dialog string) s, верните либо саму s, либо более короткую производную от s строку. Пользовательские агенты не должны предоставлять пользовательский интерфейс для отображения пропущенной части s, так как это упрощает для злоумышленников создание диалогов в форме «Важное предупреждение системы безопасности! Нажмите «Показать больше», чтобы получить полную информацию!».
Например, пользовательский агент может захотеть отображать только первые 100 символов сообщения. Или пользовательский агент может заменить середину строки на «…». Эти типы модификаций могут быть полезны для ограничения возможности злоупотребления неестественно большими системными диалогами, выглядящими заслуживающими доверия.
Мы не можем показать простые диалоги (cannot show simple dialogs) для window объекта Window, когда следующий алгоритм возвращает true:
1. Если установлен флаг изолированной программной среды из связанного документа Document объекта window установлен флаг изолированных моделей, верните значение true. 2. Если источник соответствующего объекта настроек окна window и источник верхнего уровня соответствующего объекта настроек окна window не являются одним и тем же исходным доменом, верните true. 3. Если уровень вложенности завершения цикла событий соответствующего агента окна window отличен от нуля, то при необходимости возвращается значение true. 4. При желании вернуть true. (Например, пользовательский агент может дать пользователю возможность игнорировать все модальные диалоговые окна и, таким образом, прерывать работу на этом шаге при каждом вызове метода.) 5. Вернуть false.
8.8.2. Печать
Шаги метода print():
1. Пусть документ document будет связанным Document объекта контекста this. 2. Если документ document не полностью активен, то вернуться. 3. Если счетчик выгрузки документа document больше 0, то возврат. 4. Если документ document готов к задачам пост-загрузки, выполните шаги печати для документа document. 5. В противном случае установите флаг печати при загрузке (print when loaded) документа document.
Пользовательские агенты также должны запускать этапы печати всякий раз, когда пользователь запрашивает возможность получить физическую форму (например, печатную копию) или представление физической формы (например, копию PDF) документа.
Шаги печати (printing steps) для документа document Document:
1. Пользовательский агент может отображать сообщение пользователю или возвращать (или и то, и другое).
Например, браузер киоска может молча игнорировать любые вызовы метода print().
Например, браузер на мобильном устройстве может определить, что поблизости нет принтеров, и отобразить сообщение об этом, прежде чем продолжить предлагать опцию «сохранить в PDF».
2. Если установлен флаг активной изолированной программной среды документа document имеет установленный флаг изолированных модальных окон, то возврат.
Если диалоговое окно печати заблокировано песочницей документа Document, то ни события beforeprint (перед печатью), ни события afterprint (после печати) не будут запущены.
3. Пользовательский агент должен запускать событие с именем beforeprint для соответствующего глобального объекта документа document, а также любых дочерних контекстов просмотра в нем.
Событие beforeprint (перед печатью) можно использовать для аннотирования печатной копии, например, для добавления времени печати документа.
4. Пользовательский агент должен предлагать пользователю возможность получить физическую форму (или представление физической формы) документа document. Пользовательский агент может дождаться, пока пользователь либо примет, либо отклонит его, прежде чем вернуться; если это так, пользовательский агент должен сделать паузу, пока метод ожидает. Даже если пользовательский агент не ждёт в этот момент, пользовательский агент должен использовать состояние соответствующих документов, как они есть в этот момент в алгоритме, если и когда он в конечном итоге создаст альтернативную форму.
5. Пользовательский агент должен запускать событие с именем afterprint для соответствующего глобального объекта документа document, а также любых дочерних контекстов просмотра в нём.
Событие afterprint можно использовать для отмены аннотаций, добавленных в предыдущем событии, а также для отображения пользовательского интерфейса после печати. Например, если страница проводит пользователя через шаги подачи заявки на ипотечный кредит, сценарий может автоматически перейти к следующему шагу после того, как распечатает форму или что-то другое.
Информационные ссылки
Стандарт HTML — Раздел «User prompts» — https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#user-prompts