HTMLInputElement: метод showPicker()
Метод HTMLInputElement.showPicker() отображает браузерный выборщик для элемента input.
Это тот же выборщик, который обычно отображается при выборе элемента, но может быть вызван нажатием кнопки или другим взаимодействием пользователя.
Браузеры обычно реализуют его для ввода следующих типов: "date", "month", "week", "time", "datetime-local", "color", или "file". Он также может быть предварительно заполнен элементами из элемента <datalist> или атрибута autocomplete.
В более общем случае, этот метод должен отображать выборщик для любого элемента ввода на платформе, имеющего выборщик.
Синтаксис
showPicker()
Параметры
Нет.
Возвращаемое значение
Нет (undefined).
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если элемент не изменяем, то есть пользователь не может его изменить и/или его нельзя автоматически заполнить.
-
NotAllowedErrorDOMException -
Выбрасывается, если он не вызван явно действием пользователя, таким как жест касания или щелчок мышью (для работы выборщика требуется временное активирование).
-
SecurityErrorDOMException -
Выбрасывается, если вызывается в iframe с другим доменным именем, за исключением выборщиков файла и цвета (исключение по историческим причинам).
Безопасность
Требуется временное взаимодействие пользователя. Пользователь должен взаимодействовать со страницей или элементом пользовательского интерфейса для работы этой функции.
Примеры
Обнаружение функции
Ниже приведен код, показывающий, как проверить поддержку showPicker():
if ("showPicker" in HTMLInputElement.prototype) {
// showPicker() is supported.
}
Стандартные выборщики ввода
Этот пример показывает, как использовать эту функцию для выборщиков ввода color и file.
Примечание: Выборщики для date, datetime-local, month, time, week запускаются аналогичным образом. Их нельзя показать здесь, потому что живые примеры выполняются в кадре с другим доменным именем и приведут к SecurityError
HTML
<p> <input type="color" /> <button id="color">Show the color picker</button> </p> <p> <input type="file" /> <button id="file">Show the file picker</button> </p>
JavaScript
Код просто получает предыдущий элемент выбранной кнопки и вызывает showPicker() на нём.
document.querySelectorAll("button").forEach((button) => {
button.addEventListener("click", (event) => {
const input = event.srcElement.previousElementSibling;
try {
input.showPicker();
} catch (error) {
console.log(error);
}
});
});
Результат
Нажмите кнопку рядом с каждым типом ввода, чтобы отобразить его выборщик.
showPicker() для ввода datalist
showPicker() может запустить выборщик для списка вариантов, определённых в <datalist>.
Сначала мы определяем <datalist> в HTML, состоящий из ряда интернет-браузеров, поля ввода типа text, которое его использует, и кнопки.
<datalist id="browsers"> <option value="Chrome"></option> <option value="Firefox"></option> <option value="Opera"></option> <option value="Safari"></option> <option value="Microsoft Edge"></option> </datalist> <input type="text" list="browsers" /> <button>Select browser</button>
Код ниже добавляет обработчик событий, который вызывает showPicker() при нажатии кнопки.
const button = document.querySelector("button");
const browserInput = document.querySelector("input");
button.addEventListener("click", () => {
try {
browserInput.showPicker();
} catch (error) {
// Fall back to another picker mechanism
}
});
showPicker() для автозаполнения
showPicker() может запустить выборщик для атрибута autocomplete ввода.
Здесь мы определяем поле ввода, которое использует опцию автозаполнения «name».
<input autocomplete="name" /> <button>Show autocomplete options</button>
Код ниже показывает выборщик для поля ввода при нажатии кнопки.
const button = document.querySelector("button");
const browserInput = document.querySelector("input");
button.addEventListener("click", () => {
try {
browserInput.showPicker();
} catch (error) {
// Fall back to another picker mechanism
}
});
Спецификации
| Спецификация |
|---|
| HTML # dom-input-showpicker |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
showPicker |
99 | 99 | 101 | 85 | 16 | 99 | 101 | 68 | 16 | 18.0 | 99 |
autocomplete_input |
99 | 99 | Нет | 85 | Нет | 99 | Нет | 68 | Нет | 18.0 | 99 |
color_input |
99 | 99 | 101 | 85 | 16 | 99 | 101 | 68 | Нет | 18.0 | 99 |
datalist_input |
99 | 99 | Нет | 85 | предварительный просмотр | 99 | Нет | 68 | Нет | 18.0 | 99 |
date_input |
99 | 99 | 101 | 85 | 17.4 | 99 | 101 | 68 | Нет | 18.0 | 99 |
datetime_local_input |
99 | 99 | 101 | 85 | 17.4 | 99 | 101 | 68 | Нет | 18.0 | 99 |
file_input |
99 | 99 | 101 | 85 | 16 | 99 | 101 | 68 | 16 | 18.0 | 99 |
month_input |
99 | 99 | Нет | 85 | Нет | 99 | 121101–112 | 68 | Нет | 18.0 | 99 |
time_input |
99 | 99 | Нет | 85 | 16 | 99 | 101 | 68 | Нет | 18.0 | 99 |
week_input |
99 | 99 | Нет | 85 | Нет | 99 | 121101–112 | 68 | Нет | 18.0 | 99 |
См. также
© 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/HTMLInputElement/showPicker