共同点:onunload,onbeforeunload都是在刷新或关闭时调用,可以在<script>脚本中通过 window.onunload来调用。
区别:onbeforeunload 是正要去服务器读取新的页面时调用,此时还没开始读取;
而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。
1、onunload事件
浏览器兼容情况
IE6,IE7,IE8 中 刷新页面、关闭浏览器之后、页面跳转之后都会执行;
IE9 刷新页面 会执行,页面跳转、关闭浏览器不能执行;
firefox(包括firefox3.6) 关闭标签之后、页面跳转之后、刷新页面之后能执行,但关闭浏览器不能执行;
Safari 刷新页面、页面跳转之后会执行,但关闭浏览器不能执行;
Opera、Chrome 任何情况都不执行。
2、onbeforeunload事件
浏览器兼容情况
IE6,IE7 使用 onbeforeunload 遇到的bug
凡是 <a> 标签 都会触发 onbeforeunload事件 包括 href=”javascript:void(0)” 这种。
在IE6,IE7 下面 点击 里面的 a 标签,就会触发。
解决方法:给这 a标签的父级添加 οnclick=function(){return false} 即可,不过添加了这个之后 要确保 父级里面没有 input type=”checkbox” 的标签,
否则会导致其无效不可点击。