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 未知

相关链接