Element:beforematch 事件
當一個元素處於“隱藏直到找到”狀態,並且由於使用者透過“頁面查詢”功能或片段導航找到了內容,瀏覽器即將顯示其內容時,該元素將接收一個 beforematch 事件。
語法
在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。
js
addEventListener("beforematch", (event) => { })
onbeforematch = (event) => { }
事件型別
一個通用的 Event。
用法說明
HTML 的 hidden 屬性接受一個值 until-found:當指定此值時,元素將被隱藏,但其內容對瀏覽器的“頁面查詢”功能或片段導航是可訪問的。當這些功能導致滾動到“hidden until found”子樹中的元素時,瀏覽器將
- 在隱藏的元素上觸發一個
beforematch事件 - 移除元素的
hidden屬性 - 滾動到元素
示例
使用 beforematch
在此示例中,我們有兩個 <div> 元素。第一個是可見的,而第二個具有 hidden="until-found" 和 id="until-found-box" 屬性。具有 until-found-box ID 的元素具有點狀紅色邊框和灰色背景。
我們還有一個連結,它指向 "until-found-box" 片段,以及一個監聽該隱藏元素上 beforematch 事件觸發的 JavaScript。事件處理程式會更改框的內容,以說明當 hidden until found 狀態即將被移除時可能發生的行為。
HTML
html
<a href="#until-found-box">Go to hidden content</a>
<div>I'm not hidden</div>
<div id="until-found-box" hidden="until-found">Hidden until found</div>
CSS
css
div {
height: 40px;
width: 300px;
border: 5px dashed black;
margin: 1rem 0;
padding: 1rem;
font-size: 2rem;
}
div#until-found-box {
color: red;
border: 5px dotted red;
background-color: lightgray;
}
JavaScript
js
const untilFound = document.querySelector("#until-found-box");
untilFound.addEventListener(
"beforematch",
() => (untilFound.textContent = "I've been revealed!"),
);
結果
點選“轉到隱藏內容”按鈕會將使用者導航到 hidden until found 狀態的元素。beforematch 事件觸發,內容更新,然後元素的內容顯示出來(hidden 屬性被移除)。
要再次執行示例,請點選“重新載入”。
如果您的瀏覽器不支援 hidden 屬性的 "until-found" 列舉值,第二個 <div> 將被隱藏(因為在新增 until-found 值之前 hidden 是布林值)。
規範
| 規範 |
|---|
| HTML # event-beforematch |
瀏覽器相容性
載入中…
另見
- HTML 的
hidden屬性