DEV Community

Dimitrios Desyllas
Dimitrios Desyllas

Posted on

How I can allow user's browser to actually leave page once beforeunload event is fired?

As I ask upon stackoverflow:
https://stackoverflow.com/q/67535677/4706711

I want once user confirms that wantr to leave a page to actually leave. The code so far is:

                    window.beforeunload = function(e){
                        var confirmAction = confirm("Wanna leave? This will BREAK the page.");
                        if(confirmAction){
                            //leavePage
                        }
                    };
Enter fullscreen mode Exit fullscreen mode

But I do not know how I can allow user to leave once user accepts. Do you have any idea why?

Top comments (1)

Collapse
 
nicozerpa profile image
Nico Zerpa (he/him)

The beforeunload event is quite special due to security reasons. You can't launch a confirm inside this event, but there's a way to prompt the user if they want to leave, this is the code:

window.onbeforeunload = function(event) {
  event.preventDefault();
  event.returnValue = '';
}
Enter fullscreen mode Exit fullscreen mode

This will make the browser ask the user if they really want to leave the page, and will unload the page if the user says Yes.