Created
May 30, 2021 08:36
-
-
Save nfreear/35808dd336d0be0e7fc8ab5e479ad0d0 to your computer and use it in GitHub Desktop.
`beforeUnload` event test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!doctype html> <title> `beforeUnload` event test </title> | |
| <h1> <tt>beforeUnload</tt> event test </h1> | |
| <h2><a href="?reload=1">Reload page</a></h2> | |
| <script> | |
| window.addEventListener('beforeunload', (event) => { | |
| event.preventDefault(); | |
| console.time('unload'); | |
| console.warn('> beforeUnload start:', event); | |
| delay().then(() => { | |
| console.warn('> beforeUnload end.'); | |
| console.timeLog('unload'); | |
| }); | |
| return event.returnValue = 'Are you sure you want to exit?'; | |
| }, | |
| { capture: true }); | |
| async function delay (delayMs = 10, result = null) { | |
| return new Promise((resolve, reject) => { | |
| setTimeout(() => { | |
| resolve(result); | |
| }, delayMs); | |
| }); | |
| } | |
| /* | |
| const beforeUnloadListener = (event) => { | |
| event.preventDefault(); | |
| console.warn('> beforeUnload:', event); | |
| return event.returnValue = 'Are you sure you want to exit?'; | |
| }; | |
| const nameInput = document.querySelector("#name"); | |
| nameInput.addEventListener("input", (event) => { | |
| if (event.target.value !== "") { | |
| addEventListener("beforeunload", beforeUnloadListener, {capture: true}); | |
| } else { | |
| removeEventListener("beforeunload", beforeUnloadListener, {capture: true}); | |
| } | |
| }); */ | |
| </script> | |
| <pre> | |
| NDF, 30-May-2021. | |
| * https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event | |
| </pre> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment