HTMLButtonElement: popoverTargetAction 屬性
HTMLButtonElement 介面的 popoverTargetAction 屬性用於獲取和設定將要對由按鈕控制的 popover 元素執行的操作("hide"、"show" 或 "toggle")。
它反映了 popovertargetaction HTML 屬性的值。
值
這是一個列舉值。可能的值有:
示例
透過自動 popover 切換 popover 操作
此示例展示了 popover API 的基本用法,其中 popoverTargetAction 屬性設定為 "toggle" 值。popover 屬性設定為 "auto",因此可以透過單擊 popover 區域外部來關閉 popover(“輕量級關閉”)。
首先,我們定義一個 <button> 元素,它將用於顯示和隱藏 popover,以及一個 <div> 元素,它將作為 popover。在此示例中,我們不在 <button> 上設定 popovertargetaction HTML 屬性,也不在 <div> 上設定 popover 屬性,因為我們將透過程式設計方式進行設定。
<button id="toggleBtn">Toggle popover</button>
<div id="mypopover">This is popover content!</div>
JavaScript 程式碼首先獲取對 <div> 和 <button> 元素的引用。然後定義一個函式來檢查 popover 支援情況。
const popover = document.getElementById("mypopover");
const toggleBtn = document.getElementById("toggleBtn");
// Check for popover API support.
function supportsPopover() {
return Object.hasOwn(HTMLElement.prototype, "popover");
}
如果支援 popover API,程式碼會將 <div> 元素的 popover 屬性設定為 "auto",並使其成為切換按鈕的目標 popover。然後我們將 <button> 的 popoverTargetAction 設定為 "toggle"。如果不支援 popover API,我們將更改 <div> 元素的文字內容以宣告此情況,並隱藏切換按鈕。
if (supportsPopover()) {
// Set the <div> element to be an auto popover
popover.popover = "auto";
// Set the button popover target to be the popover
toggleBtn.popoverTargetElement = popover;
// Set that the button toggles popover visibility
toggleBtn.popoverTargetAction = "toggle";
} else {
popover.textContent = "Popover API not supported.";
toggleBtn.hidden = true;
}
注意: popover 元素預設是隱藏的,但如果 API 不受支援,您的元素將“按原樣”顯示。
您可以嘗試下面的示例。透過切換按鈕來顯示和隱藏 popover。"auto" popover 也可以透過在 popover 文字範圍外部選擇來“輕量級關閉”。
使用手動 popover 顯示/隱藏 popover 操作
此示例展示瞭如何使用 popoverTargetAction 屬性的 "show" 和 "hide" 值。
程式碼與上一個示例幾乎相同,不同之處在於有兩個 <button> 元素,並且 popover 設定為 "manual"。manual popover 必須顯式關閉,並且不能透過在 popover 區域外部選擇來“輕量級關閉”。
<button id="showBtn">Show popover</button>
<button id="hideBtn">Hide popover</button>
<div id="mypopover">This is popover content!</div>
function supportsPopover() {
return Object.hasOwn(HTMLElement.prototype, "popover");
}
const popover = document.getElementById("mypopover");
const showBtn = document.getElementById("showBtn");
const hideBtn = document.getElementById("hideBtn");
const popoverSupported = supportsPopover();
if (supportsPopover()) {
// Set the <div> element be a manual popover
popover.popover = "manual";
// Set the button targets to be the popover
showBtn.popoverTargetElement = popover;
hideBtn.popoverTargetElement = popover;
// Set the target actions to be show/hide
showBtn.popoverTargetAction = "show";
hideBtn.popoverTargetAction = "hide";
} else {
popover.textContent = "Popover API not supported.";
showBtn.hidden = true;
hideBtn.hidden = true;
}
透過選擇“顯示 popover”按鈕可以顯示 popover,使用“隱藏 popover”按鈕可以關閉 popover。
規範
| 規範 |
|---|
| HTML # dom-popovertargetaction |
瀏覽器相容性
載入中…