This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.
The close event is fired on an HTMLDialogElement object when the <dialog> it represents has been closed.
This event is not cancelable and does not bubble.
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("close", (event) => { })
onclose = (event) => { }
A generic Event.
<dialog class="example-dialog">
<form method="dialog">
<button>Close via method="dialog"</button>
</form>
<button class="close">Close via .close() method</button>
<p>Or hit the <kbd>Esc</kbd> key</p>
</dialog>
<button class="open-dialog">Open dialog</button>
<div class="result"></div>
const result = document.querySelector(".result");
const dialog = document.querySelector(".example-dialog");
dialog.addEventListener("close", (event) => {
result.textContent = "dialog was closed";
});
const openDialog = document.querySelector(".open-dialog");
openDialog.addEventListener("click", () => {
dialog.showModal();
result.textContent = "";
});
const closeButton = document.querySelector(".close");
closeButton.addEventListener("click", () => {
dialog.close();
});
| Specification |
|---|
| HTML> # event-close> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
close_event |
37 | 79 | 98 | 24 | 15.4 | 37 | 98 | 24 | 15.4 | 3.0 | 37 | 15.4 |
© 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/HTMLDialogElement/close_event