window.addEventListener("beforeunload", function (e) { var confirmationMessage = "o/"; (e || window.event).returnValue = confirmationMessage; // Gecko and Trident return confirmationMessage; // Gecko and WebKit });
从2011年5月25号开始,HTML5规范指出在此事件处理函数中,对于window.alert()
, window.confirm()
, 和 window.prompt()
的调用会被忽略。详见HTML5规范说明。
同样需要注意的是许多手机浏览器会忽略该事件处理的返回值(亦即,它们不会要求用户确认,而是直接执行操作)Firefox在about:config中有一个隐藏的设置来做同样的事。其实就是用户确认文档总会被卸载。
经常会有一些在用户离开页面前执行一些业务的应用场景,这都要用到onbeforeunload事件