BeforeUnloadEvent: returnValue property

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

The returnValue property of the BeforeUnloadEvent interface, when set to a truthy value, triggers a browser-generated confirmation dialog asking users to confirm if they really want to leave the page when they try to close or reload it, or navigate somewhere else. This is intended to help prevent loss of unsaved data.

Note: returnValue is a legacy feature, and best practice is to trigger the dialog by invoking Event.preventDefault() on the BeforeUnloadEvent object, while also setting returnValue to support legacy cases. See the beforeunload event reference for detailed up-to-date guidance.


returnValue is initialized to an empty string ("") value.

Setting it to just about any truthy value will cause the dialog to be triggered on page close/reload, however note that it also requires sticky activation. In other words, the browser will only show the dialog if the frame or any embedded frame receives a user gesture or user interaction. If the user has never interacted with the page, then there is no user data to save, so no legitimate use case for the dialog.

Note: A generic browser-specified string is displayed in the dialog. This cannot be controlled by the webpage code.


See the beforeunload event reference page for a best practice example.


HTML Standard
# dom-beforeunloadevent-returnvalue

Browser compatibility

BCD tables only load in the browser