В этом разделе мы рассмотрим базовые UI операции: alert
, prompt
и confirm
, которые позволяют работать с данными, полученными от пользователя.
alert
Синтаксис:
alert(сообщение)
alert
выводит на экран окно с сообщением и приостанавливает выполнение скрипта, пока пользователь не нажмёт «ОК».
alert( "Привет" );
Окно сообщения, которое выводится, является модальным окном. Слово «модальное» означает, что посетитель не может взаимодействовать со страницей, нажимать другие кнопки и т.п., пока не разберётся с окном. В данном случае – пока не нажмёт на «OK».
prompt
Функция prompt принимает два аргумента:
result = prompt(title, default);
Она выводит модальное окно с заголовком title
, полем для ввода текста, заполненным строкой по умолчанию default
и кнопками OK/CANCEL.
Пользователь должен либо что-то ввести и нажать OK, либо отменить ввод кликом на CANCEL или нажатием Esc на клавиатуре.
Вызов prompt
возвращает то, что ввёл посетитель – строку или специальное значение null
, если ввод отменён.
null
Единственный браузер, который не возвращает null
при отмене ввода – это Safari. При отсутствии ввода он возвращает пустую строку. Предположительно, это ошибка в браузере.
Если нам важен этот браузер, то пустую строку нужно обрабатывать точно так же, как и null
, т.е. считать отменой ввода.
Как и в случае с alert
, окно prompt
модальное.
var years = prompt('Сколько вам лет?', 100);
alert('Вам ' + years + ' лет!')
default
Второй параметр может отсутствовать. Однако при этом IE вставит в диалог значение по умолчанию "undefined"
.
Запустите этот код в IE, чтобы понять о чём речь:
var test = prompt("Тест");
Поэтому рекомендуется всегда указывать второй аргумент:
var test = prompt("Тест", ''); // <-- так лучше
confirm
Синтаксис:
result = confirm(question);
confirm
выводит окно с вопросом question
с двумя кнопками: OK и CANCEL.
Результатом будет true
при нажатии OK и false
– при CANCEL(Esc).
Например:
var isAdmin = confirm("Вы - администратор?");
alert( isAdmin );
Особенности встроенных функций
Конкретное место, где выводится модальное окно с вопросом – обычно это центр браузера, и внешний вид окна выбирает браузер. Разработчик не может на это влиять.
С одной стороны – это недостаток, так как нельзя вывести окно в своём, особо красивом, дизайне.
С другой стороны, преимущество этих функций по сравнению с другими, более сложными методами взаимодействия, которые мы изучим в дальнейшем – как раз в том, что они очень просты.
Это самый простой способ вывести сообщение или получить информацию от посетителя. Поэтому их используют в тех случаях, когда простота важна, а всякие «красивости» особой роли не играют.
Резюме
alert
выводит сообщение.prompt
выводит сообщение и ждёт, пока пользователь введёт текст, а затем возвращает введённое значение илиnull
, если ввод отменён (CANCEL/Esc).confirm
выводит сообщение и ждёт, пока пользователь нажмёт «OK» или «CANCEL» и возвращаетtrue/false
.