通常在浏览器关闭时有两个方法选择,1.onunload 2.onbeforeunload
由于1在不同浏览器有的执行,有的不执行,所以通常选择在onbeforeunload事件中处理。
该事件发生在很多情况:
- 刷新页面
- postback
- 点击链接
- 浏览器导航前后操作
有时不希望如点击链接时、刷新等一些步骤中不需要执行close event,所以我们可以使用一些方法进行排除这几个操作。当然导航的前后这些我们是检测不到的,也排除不了。
排除的原理:
在执行不想执行关闭脚本的操作中设置一些标志位,然后在事件中判断即可。简单逻辑如下:
$("a").click(function(){ isclose=false; });
window.onbeforeunload=function(){ if (isclose) { do() } }