HTMLSelectElement: showPicker() 方法
HTMLSelectElement.showPicker()
方法会显示 select
元素的浏览器选择器。
这与在选择元素时通常会显示的选择器相同,但可以通过按钮按下或其他用户交互触发。
语法
js
showPicker()
参数
无。
返回值
无 (undefined
).
异常
InvalidStateError
DOMException
-
如果元素不可变,则抛出异常,这意味着用户无法修改它,并且/或者它无法自动填充。
NotAllowedError
DOMException
-
如果未由用户操作(例如触摸手势或鼠标点击)显式触发,则抛出异常(选择器需要瞬态激活)。
NotSupportedError
DOMException
-
如果与选择器关联的元素未被渲染,则抛出异常。
SecurityError
DOMException
-
如果在跨源 iframe 中调用,则抛出异常。
安全注意事项
瞬态用户激活 是必需的。用户必须与页面或 UI 元素交互才能使用此功能。
该方法只能在同源 iframe 中调用;如果在跨源 iframe 中调用,则会抛出异常。
示例
功能检测
以下代码展示了如何检查是否支持 showPicker()
js
if ("showPicker" in HTMLSelectElement.prototype) {
// showPicker() is supported.
}
启动选择器
此示例展示了如何使用按钮启动 <select>
元素的选择器,该元素有两个选项。
HTML
html
<p>
<select>
<option value="1">One</option>
<option value="2">Two</option>
</select>
<button type="button">Show Picker</button>
</p>
JavaScript
代码获取 <button>
并为其 click
事件添加一个监听器。事件处理程序获取 <select>
元素并在其上调用 showPicker()
。
js
const button = document.querySelector("button");
button.addEventListener("click", (event) => {
const select = event.srcElement.previousElementSibling;
try {
select.showPicker();
} catch (error) {
window.alert(error);
}
});
规范
规范 |
---|
HTML 标准 # dom-select-showpicker |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。