Web/API/BeforeUnloadEvent

From Get docs

The beforeunload event is fired when the window, the document and its resources are about to be unloaded.

When a non-empty string is assigned to the returnValue Event property, a dialog box appears, asking the users for confirmation to leave the page (see example below). When no value is provided, the event is processed silently. Some implementations only show the dialog box if the frame or any embedded frame receives a user gesture or user interaction. See Browser compatibility for more information.

Bubbles No
Cancelable Yes
Target objects defaultView
Interface Event

Examples

window.addEventListener("beforeunload", function( event ) {
  event.returnValue = "\o/";
});

// is equivalent to
window.addEventListener("beforeunload", function( event ) {
  event.preventDefault();
});

WebKit-derived browsers don't follow the spec for the dialog box. An almost-cross-browser working example would be close to the below example.

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";

  (e || window.event).returnValue = confirmationMessage;     // Gecko + IE
  return confirmationMessage;                                /* Safari, Chrome, and other
                                                              * WebKit-derived browsers */
});

Specifications

Specification Status Comment
HTML Living StandardThe definition of 'BeforeUnloadEvent' in that specification. Living Standard Initial definition

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
BeforeUnloadEvent Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 1.5

IE

Full support Yes

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support 4

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

User interaction required for dialog box Chrome

Full support 60

Edge

Full support ≤79

Firefox

?

IE

?

Opera

Full support 47

Safari

?

WebView Android

Full support 60

Chrome Android

Full support 60

Firefox Android

?

Opera Android

Full support 44

Safari iOS

?

Samsung Internet Android

Full support 8.0

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown


See also