CloseWatcher: CloseWatcher() constructor

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The CloseWatcher() constructor creates a new CloseWatcher object.

You can create CloseWatcher instances without user activation, and this can be useful to implement cases like session inactivity timeout dialogs. However, if you create more than one CloseWatcher without user activation, then the newly-created one will be grouped together with the last one, so a single close request will close them both. This means that it is important to call destroy(), close(), and requestClose() properly.


new CloseWatcher()
new CloseWatcher(options)


options Optional

An object that has the following properties:


An AbortSignal. If this is provided, then the watcher can be destroyed (as if by calling CloseWatcher.destroy()) by calling AbortController.abort() on the corresponding AbortController.

Return value

A new CloseWatcher object.


Creating new CloseWatcher instances

Create a new CloseWatcher.

const watcher = new CloseWatcher();

Create a new CloseWatcher with an AbortSignal that controls destroying the watcher.

const controller = new AbortController();
const signalWatcher = new CloseWatcher({ signal: controller.signal };


HTML Standard
# dom-closewatcher

Browser compatibility

BCD tables only load in the browser