This code runs fine on Firefox, but I can't make the unload event work on Chrome anymore. Did Chrome stop supporting the unload event?
This is my code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" src="../jquery/jquery.js"></script>
<script type="text/javascript">
function pageHidden(evt) { alert("Are you sure 1?"); } //WORKS ON FIREFOX BUT NOT IN CHROME
window.addEventListener("pagehide", pageHidden, false);
window.onunload = function () { alert("Are you sure 2?"); } //TRIGGERS ON LOAD NOT ON UNLOAD
$(window).unload(function () { //WORKS ON FIREFOX BUT NOT IN CHROME
alert("Are you sure 3?");
});
</script>
</head>
<body>
TEST WEBSITE
<a href="http://www.iamawesome.com">external link</a>
</body>
</html>
How can I get the unload event to work in Chrome?
Thanks!
ANSWER: Don't test the unload event with alerts ;)
From what I've read it seems Chrome blocks alerts once that event has been triggered. You can run some functions, however, just not anything that interacts with the user it seems.
From window.onbeforeunload in Chrome: what is the most recent fix?, it seems, if all you want to do is pop up a confirmation message, you have to do it by returning a string with the message from the function you set as the callback.
window.onbeforeunload = function() {
// Some wrap up code (no alerts, confirms, redirects, etc)
return 'My confirmation messsage';
}
The text "My confirmation message" will then show up in a confirmation dialogue of Chrome's choosing. Firefox documents this behaviour here.
window.onunload = alert("Are you sure 2?");
This is incorrect. You are setting onunload
to the result of alert
, you need to set it to a function:
window.onunload = function(){
alert("Are you sure?");
}
If you want to use jQuery, this will work in all browsers.
$(window).unload(function () {
alert("Are you sure?");
});
NOTE: It might seem like it's not working in Chrome, but it is. That's because Chrome blocks alert
s in the onunload
event.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With