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

浏览器兼容性

另见