javascript - 如何验证是否触发了触发了beforeunload事件?
迷茫
迷茫 2017-04-11 13:11:00
[JavaScript讨论组]


    
    
    无标题文档
    

    
    
        链接1
        链接2
        链接3
        
        

本来问题是为什么在chrome和IE环境下快速点击链接3时会停止a()事件执行(firefox正常),后来看到这个

然后我想验证究竟是不是触发了beforeunload可是不知道该怎么做.(js初学者)。 要是验证是否触发click我还可以在function里打印数字1,可是验证beforeunload是否触发实在想不到思路。如果我给beforeunload添加个事件 那就成了我自己要触发beforeunload事件不能证明是js触发的

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
迷茫

MDN里有说,你可以参考下。


被楼下启发了下,既然标准都不推荐那安全起见还是不推荐这么写的;但如果一定要这么写的话,通常href空链接有两种写法:

  1. href = "#"onclick = "clickThis.call(this)",然后记得clickThis里要return false;

  2. href = "javascript: void(0)",然后可以随便用js处理下就好。

天蓬老师

其实关于在 href 使用 JavaScript 本身就是一个错误的行为,我想是开发人员在使用 a 标签时,如果不加上 hrefname 属性的时候,是无法呈现出链接样式效果。

但是如果写一个 # 的话,又会让页面跳转至顶部。

所以,聪明的开发人员就使用的 href="javascript:;" 这种做法,让 a 标签是一个真正有效的链接,同时又防止页面跳至顶部。

然,又有一些聪明的开发人员太懒,觉得反正已经变异写法,不如连 onclick 也不要写,直接写上 href="javascript: return fn();"

以上,是我编写的历史。

那么回过头来看,在 href 里面写上javascript其实就是相当于在当前页面的地址栏上输入脚本一样。因此,可以简单的解释,为什么在快速点击链接3时,会看起来像是延迟了一些时间。

当然,不管怎么样,在一个本身就是错误的行为上,寻找正确的答应就是愚者的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号