Search code examples
javascriptonbeforeunload

Remove onbeforeunload from JS execution in main window from frame


I tried to disable onbeforeunload event from frame script with this command:

window.parent.onbeforeunload = null;

but received this dialog:

enter image description here

I tried to debug and onbeforeunload becomes null. But how I can do so this dialog not shown?

For additional information, I need to trigger this event with JS. At start of the page I set:

window.parent.onbeforeunload = confirm;

where confirm is my own function. But in some places of code I need to disable this event and after that enable with the same command.


Solution

  • This could be happening because null is basically an object in Javascript. Here is how I had written it:

    var confirmCloseFn = function(evt) {
        if (!captureClose) return;
        var message = getLogoffMsg();
        evt = (evt) ? evt : window.event;
        if(message) {
            if (evt) evt.returnValue = message;
            return message;
        }
        else {
            if (evt) evt.returnValue = null;
            return null;
        }
    };