window.onbeforeunload not working in chrome

siddhesh picture siddhesh · Jan 26, 2011 · Viewed 60k times · Source

This is the code which i used for window.onbeforeunload......

<head>
<script>

    window.onbeforeunload = func;

    function func() 
    {
        var request = new XMLHttpRequest();
        request.open("POST", "exit.php", true); 
        request.onreadystatechange = stateChanged;
        request.send(null);
    }
    function stateChanged()
    {
        if (request.readyState == 4 || request.readyState == "complete")
            alert("Succes!");
    }
    </script>
    </head>

this works with IE and mozila but does not work with chrome..... please help...... thanks in advance.....

Answer

LapinLove404 picture LapinLove404 · Feb 23, 2012

It seems that the only thing you can do with onbeforeunload in recent version of Chrome is to set the warning message.

window.onbeforeunload = function () {
    return "Are you sure";
};

Will work. Other code in the function seems to be ignored by Chrome


UPDATE: As of Chrome V51, the returned string will be ignored and a default message shown instead.