alert, prompt, confirm
Эта функция показывает сообщение и ждёт, пока пользователь нажмёт кнопку «ОК».
Например:
alert("Hello");
Это небольшое окно с сообщением называется модальным окном. Понятие модальное означает, что пользователь не может взаимодействовать с интерфейсом остальной части страницы, нажимать на другие кнопки и т.д. до тех пор, пока взаимодействует с окном. В данном случае – пока не будет нажата кнопка «OK».
Функция prompt
принимает два аргумента:
result = prompt(title, [default]);
Этот код отобразит модальное окно с текстом, полем для ввода текста и кнопками OK/Отмена.
title
Текст для отображения в окне.default
Необязательный второй параметр, который устанавливает начальное значение в поле для текста в окне.Квадратные скобки в синтаксисе [...]
Квадратные скобки вокруг default
в описанном выше синтаксисе означают, что параметр факультативный, необязательный.
Пользователь может напечатать что-либо в поле ввода и нажать OK. Введённый текст будет присвоен переменной result
. Пользователь также может отменить ввод нажатием на кнопку «Отмена» или нажав на клавишу Esc. В этом случае значением result
станет null
.
Вызов prompt
возвращает текст, указанный в поле для ввода, или null
, если ввод отменён пользователем.
Например:
let age = prompt('Сколько тебе лет?', 100);
alert(`Тебе ${age} лет!`); // Тебе 100 лет!
❗ Для IE: всегда устанавливайте значение по умолчанию
Второй параметр является необязательным, но если не указать его, то Internet Explorer вставит строку "undefined"
в поле для ввода.
Запустите код в Internet Explorer и посмотрите на результат:
let test = prompt("Test");
Чтобы prompt
хорошо выглядел в IE, рекомендуется всегда указывать второй параметр:
let test = prompt("Test", ''); // <-- для IE
Синтаксис:
result = confirm(question);
Функция confirm
отображает модальное окно с текстом вопроса question
и двумя кнопками: OK и Отмена.
Результат – true
, если нажата кнопка OK. В других случаях – false
.
Например:
let isBoss = confirm("Ты здесь главный?");
alert( isBoss ); // true, если нажата OK
Проблеми з confirm
Хотів перед запитом з confirm закрити popup-менюшку і виділити червоним рядок в таблиці, який мав видалятися. Але confirm спрацьювував, а менюшка не закривалася і рядок не виділявся. Хоча текстові мітки в config.log() між ціми командами виводилися коректно.
Я так і не зрозумів - в чому причина?..
Зробив задумане лише обгорнувши confirm
у setTimeout(function() {}, 50);
tr_line.classList.add('table-danger');
console.log('роблю червоним рядок!');
console.log('намагаюсь закрити меню!');
setTimeout(function() {
if (confirm(`Дійсно бажаєте видалити...?`))
{
console.log('confirmed');
fetch("...")
}
else
{
console.log('canceled');
tr_line.classList.remove('table-danger');
}
}, 50);
Last updated