Простые диалоговые окна
 
 
 

 

Простые диалоговые окна

Объект Window обладает тремя методами для представления пользователю про стейших диалоговых окон. Метод alert() выводит сообщение и ожидает, пока пользователь закроет диалоговое окно. Метод confirm() предлагает пользователю щелкнуть на кнопке OK или Отмена для подтверждения или отмены операции. Метод prompt() предлагает пользователю ввести строку.
Хотя эти методы вызова диалоговых окон чрезвычайно просты в использовании, правила хорошего тона требуют, чтобы они применялись как можно реже и толь ко в случае насущной необходимости. Диалоговые окна, подобные этим, не яв ляются распространенной парадигмой в вебдизайне и в настоящее время приме няются все реже и реже благодаря поддержке в вебброузерах средств изменения содержимого самого документа. Большинство пользователей считают, что диа логовые окна, выводимые методами alert(), confirm() и prompt(), противоречат обычной практике. Единственный вариант, когда имеет смысл обращаться к этим методам, – это отладка. JavaScriptпрограммисты часто вставляют вызов метода alert() в программный код, пытаясь диагностировать возникающие про блемы (альтернативный способ отладки представлен в примере 15.9).
Обратите внимание: текст, отображаемый в диалоговых окнах, – это обычный неформатированный текст. Его можно форматировать только пробелами, пере водами строк и различными знаками пунктуации.
Некоторые броузеры отображают слово «JavaScript» в заголовке или верхнем левом углу всех диалоговых окон, создаваемых методами alert(), confirm() и prompt(). Хотя дизайнеров этот факт раздражает, его стоит рассматривать как особенность, а не как ошибку; слово «JavaScript» находится там, чтобы пользо вателю было ясно происхождение диалогового окна и помешать созданию кода «троянских коней», имитирующего системные диалоговые окна и обманом за ставляющего пользователей вводить свои пароли и выполнять другие действия, которые им выполнять не следует.
Методы confirm() и prompt() являются блокирующими, т. е. они не возвращают управление, пока пользователь не закроет выводимые ими диалоговые окна.1 Это значит, что когда выводится одно из этих окон, программный код прекращает исполнение, и текущий загружаемый документ, если таковой существует, пре кращает загружаться до тех пор, пока пользователь не отреагирует на запрос. Та кому поведению методов нет альтернативы: возвращаемое ими значение – это введенные пользователем данные, поэтому они просто должны дождаться реак ции пользователя перед тем, как вернуть значение. В большинстве броузеров ме тод alert() также является блокирующим и ожидает от пользователя закрытия диалогового окна.
Один из типичных вариантов использования метода confirm() приводится в при мере 14.5, который создает диалоговое окно, показанное на рис. 14.2.
Пример 14.5. Использование метода confirm()
function submitQuery() {
// Это текст вопроса, который выводится перед пользователем.
// Форматирование выполнено только с помощью символов
// подчеркивания и перевода строки.
var message = "\n\n\n\n" +
"_________________________________________________\n\n" +
"На исполнение такого сложного запроса, как ваш,\n" +
"может потребоваться минута или более.\n" +
"_________________________________________________\n\n\n" +
"Щелкните на кнопке OK, чтобы продолжить,\n" +
"или Отмена, чтобы отменить операцию.";
// Запросить разрешение на выполнение операции
// и прервать ее, если разрешение не будет получено
if (!confirm(message)) return;
/* Здесь находится программный код, выполняющий запрос */
}


 

Разделы

 
Справочник по javascript