DEV Community

loading...

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

Dimitrios Desyllas
Greedings I am Dimitrios Desyllas aka pc_magas. I am a php software engineer in e-table. I am interested in electron, C++, privacy enhancing terchnologies and cryptography
・1 min read

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?

Discussion (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.

Forem Open with the Forem app