BeforeUnloadEvent - 窗口,文档及其资源即将被关闭时触发的事件
当窗口,文档及其资源即将被关闭时,会触发 beforeunload
事件。
当赋值给事件属性 returnValue
一个非空字符串时,会弹出一个对话框,要求用户确认离开页面(见下面的实例)。如果未提供任何值,则处理该事件时不会弹出提示。有些浏览器的实现是只有在窗口或嵌入的窗口收到用户的手势或操作时,才会弹出对话框。有关更多信息,请参阅 桌面浏览器兼容性。
冒泡 | No |
---|---|
可取消 | Yes |
目标对象 | defaultView |
接口 | Event |
实例
window.addEventListener("beforeunload", function( event ) {
event.returnValue = "\o/";
});
// 等于
window.addEventListener("beforeunload", function( event ) {
event.preventDefault();
});
基于 Webkit 的浏览器不遵循该对话框的规范。跨浏览器的工作实例如下:
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
(e || window.event).returnValue = confirmationMessage; //Gecko + IE
return confirmationMessage; //Webkit, Safari, Chrome 等。
});
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持 | 未知 | 支持 | 支持 | 支持 | 支持 |
用户交互才弹出对话框 | 60 | 未知 | 未知 | 未知 | 47 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
用户交互才弹出对话框 | 60 | 60 | 未知 | 未知 | 未知 | 47 | 未知 |