W3cubDocs

/Web APIs

Element: beforematch event

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

An element receives a beforematch event when it is in the hidden until found state and the browser is about to reveal its content because the user has found the content through the "find in page" feature or through fragment navigation.

Syntax

Use the event name in methods like addEventListener(), or set an event handler property.

addEventListener("beforematch", (event) => { })

onbeforematch = (event) => { }

Event type

A generic Event.

Usage notes

The HTML hidden attribute accepts a value until-found: when this value is specified, the element is hidden but its content will be accessible to the browser's "find in page" feature or to fragment navigation. When these features cause a scroll to an element in a "hidden until found" subtree, the browser will:

  1. Fire a beforematch event on the hidden element
  2. Remove the hidden attribute from the element
  3. Scroll to the element

Examples

>

Using beforematch

In this example, we have two <div> elements. The first is visible, while the second has the hidden="until-found" and id="until-found-box" attributes. The element with a until-found-box id has a dotted red border and a gray background.

We also have a link that targets the "until-found-box" fragment and JavaScript that listens for the beforematch event firing on that hidden element. The event handler changes the text content of the box to illustrate an action that can occur when the hidden until found state is about to be removed.

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

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

const untilFound = document.querySelector("#until-found-box");
untilFound.addEventListener(
  "beforematch",
  () => (untilFound.textContent = "I've been revealed!"),
);

Result

Clicking the "Go to hidden content" button navigates to the element in the hidden until found state. The beforematch event fires, the text content is updated, and then the element's content is displayed (the hidden attribute is removed).

To run the example again, click "Reload".

If your browser does not support the "until-found" enumerated value of the hidden attribute, the second <div> will be hidden (as hidden was boolean prior to the addition of the until-found value).

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android WebView on iOS
beforematch_event 102 102 139 88 No 102 139 70 No 19.0 102 No

See also

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/beforematch_event