Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Alert Before Page Close: How to change the Chrome's default message?

I am using the following code snippet to trigger an alert before page closes but Chrome seems to ignore the message and displays its default message "Do you want to leave this site? Changes you made might not be saved". How can I make chrome show my message instead of the default one?

window.onbeforeunload = function(e) {
    e.returnValue = "A search is in progress, do you really want to stop the search and close the tab?";
    return "A search is in progress, do you really want to stop the search and close the tab?";
}
like image 390
Cashif Ilyas Avatar asked Jun 15 '16 00:06

Cashif Ilyas


1 Answers

I only recently realized that Chrome had changed the behavior of onbeforeunload. I found a workaround that works for the main browsers (tested in Chrome, Firefox and IE, the jsFiddle for some reason doesn't work in Firefox, but my website does). Using jQuery UI, you can make a dialog window come up when leaving the page that gives more info about why leaving the current page would be a problem.

window.onbeforeunload = function (e) {
    $('<div title="Warning!">A search is in progress, do you really want to stop the search and close the tab? If not, choose "Stay on page" on the browser alert.</div>').dialog({
        modal:true,
        close: function(){$(this).dialog('destroy').remove();}
    });
    return "Random message to trigger the browser's native alert.";
}

jsFiddle here

like image 183
Mar Avatar answered Nov 03 '22 01:11

Mar