zoukankan      html  css  js  c++  java
  • 伪协议触发onbeforeunload

    根据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
  • 相关阅读:
    sklearn
    Scrapy
    正则表达式re
    BeautifulSoup
    requests
    Python网络爬虫与信息提取
    Matplotlib
    Pandas
    NumPy
    制约大数据处理能力的几个问题
  • 原文地址:https://www.cnblogs.com/jununx/p/3361006.html
Copyright © 2011-2022 走看看