Окно: метод prompt()
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает во многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
window.prompt() указывает браузеру отобразить диалоговое окно с необязательным сообщением, запрашивающим у пользователя ввод текста, и ожидать, пока пользователь либо отправит текст, либо отменит диалоговое окно.
В некоторых условиях — например, при переключении пользователем вкладок — браузер может не отобразить диалоговое окно или не дождаться отправки текста пользователем или отмены диалогового окна.
Синтаксис
prompt() prompt(message) prompt(message, defaultValue)
Параметры
messageНеобязательно-
Строка текста, отображаемая пользователю. Можно опустить, если в окне запроса ничего не нужно отображать.
defaultValueНеобязательно-
Строка, содержащая значение по умолчанию, отображаемое в поле ввода текста.
Возвращаемое значение
Строка, содержащая текст, введённый пользователем, или null.
Примеры
let sign = prompt("What's your sign?");
if (sign.toLowerCase() === "scorpio") {
alert("Wow! I'm a Scorpio too!");
}
// there are many ways to use the prompt feature
sign = window.prompt(); // open the blank prompt window
sign = prompt(); // open the blank prompt window
sign = window.prompt("Are you feeling lucky"); // open the window with Text "Are you feeling lucky"
sign = window.prompt("Are you feeling lucky", "sure"); // open the window with Text "Are you feeling lucky" and default value "sure"
При нажатии пользователем кнопки «ОК» возвращается текст, введённый в поле ввода. Если пользователь нажимает «ОК», не вводя текст, возвращается пустая строка. Если пользователь нажимает кнопку «Отмена», эта функция возвращает null.
Вышеприведённый запрос отображается следующим образом (в Chrome на macOS):
Примечания
Диалоговое окно запроса содержит текстовое поле с одной строкой, кнопку «Отмена» и кнопку «ОК» и возвращает (возможно, пустой) текст, введённый пользователем в это текстовое поле.
Обратите внимание, что результат — строка. Это означает, что иногда вам нужно преобразовать значение, полученное от пользователя. Например, если ожидается число, необходимо преобразовать значение в число.
const aNumber = Number(window.prompt("Type a number", ""));
Диалоговые окна являются модальными окнами; они предотвращают доступ пользователя к остальной части интерфейса программы до закрытия диалогового окна. По этой причине следует избегать чрезмерного использования функций, создающих диалоговые окна (или модальные окна).
В качестве альтернативы можно использовать элемент <dialog> для получения ввода от пользователя.
Спецификации
| Спецификация |
|---|
| HTML # dom-prompt-dev |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
prompt |
1Начиная с Chrome 46, этот метод заблокирован внутри<iframe> , если атрибут sandbox не имеет значения allow-modals. |
12 | 1Firefox удаляет символы новой строки из ответа запроса; см. ошибку 1716229. |
3Начиная с Opera 33, этот метод заблокирован внутри<iframe> , если атрибут sandbox не имеет значения allow-modals. |
1 | 18Начиная с Chrome Android 46, этот метод заблокирован внутри<iframe> , если атрибут sandbox не имеет значения allow-modals. |
4Firefox для Android удаляет символы новой строки из ответа запроса; см. ошибку 1716229. |
10.1Начиная с Opera 33, этот метод заблокирован внутри<iframe> , если атрибут sandbox не имеет значения allow-modals. |
1 | 1.0Начиная с Samsung Internet 5.0, этот метод заблокирован внутри<iframe> , если атрибут sandbox не имеет значения allow-modals. |
4.4Начиная с WebView Android 46, этот метод заблокирован внутри<iframe> , если атрибут sandbox не имеет значения allow-modals. |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt