根据MSDN描述,IE的onbeforeunload事件触发条件:

简单点来说就是页面URL发生改变时触发:

* 关闭浏览器窗口
* 点击后退、前进、刷新、主页
* 点击链接到新页面
* 调用超链接的click,document.write,document.open,document.close
* 调用window.close,window.open[_self],winodw.navigate,NavigateAndFind,location.replace,location.reload,新的location.herf,submit表单提交,form.submit

接下来看看JavaScript伪协议触发的onbeforeunload:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<a href="javascript:;">我是a链接javascript:;,点我试试</a>
<a href="javascript:void(0);">我是a链接javascript:void(0);,点我试试</a>
<a href="#">我是a链接#,点我试试</a> <script type="text/javascript">
  //javascript:; 和 javascript:void(0); 都触发了onbeforeunload
window.onbeforeunload = function (e) {
e = e || window.event; // 兼容IE8和Firefox 4之前的版本
if (e) {
e.returnValue = '关闭提示';
} // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
return '关闭提示';
};
</script>
</body>
</html>

解决方法: 

onbeforeunload未被标准化,各浏览器的支持与触发各有差异!

避免在页面使用Javascript:;以及其他伪协议,避免重复触发onbeforeunload

最新文章

  1. 一个bug
  2. 转 iOS Core Animation 动画 入门学习(一)基础
  3. WIN8 浏览器排版不兼容问题
  4. Html获取经纬度
  5. C. Sonya and Queries
  6. 第三章—Windows程序
  7. Android动画效果
  8. J2SE网络编程之 TCP与UDP
  9. 打造最强Windows Server 2012 给你比Windows 8更好的体验
  10. Internet Information Services安装与启动
  11. ThreadLocal经典分页
  12. windows10,redhat6.5下python3.5.2使用cx_Oracle链接oracle
  13. ASP.NET CORE Linux发布工具(文件对比 只上传差异文件;自动启停WebServer命令;上传完成自动预热WebServer)
  14. 爬虫基础——HTTP基本原理
  15. mac 管理员权限变成了普通权限处理方法
  16. TensorFlow.js之根据数据拟合曲线
  17. maybe i have no answer
  18. Android SDK Manager速度慢
  19. 2.MySQL简介
  20. 【Android学习】自定义checkbox

热门文章

  1. Robot FrameWork 教程链接
  2. Lintcode--005(最长公共子序列)
  3. lpc1788控制步进电机28BYJ-48
  4. logstash 利用drop 丢弃过滤日志
  5. Linux企业级项目实践之网络爬虫(3)——设计自己的网络爬虫
  6. 【转】android 5.0 64bit系统加载库文件失败问题浅析
  7. java开发经验分享(一)
  8. 关于static静态
  9. MySql按日期时间段进行统计(前一天、本周、某一天、某个时间段)
  10. wcf简单的创建和运用