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

瀏覽器相容性

另見