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属性