js判断页面是关闭还是刷新原理,就是通过离开页面行为时间onunload触发时间去检测此时的浏览器的窗口大小,根据大小由此判断用户是刷新,跳转或是关闭行为。
程序
代码如下 | |
window.onunload = function(){ |
用浏览器右上角的关闭按钮时好用,但在选项卡上关闭和在任务栏上关闭,这个方法就不作用了
js标签只有onloadonunloadonbeforeunload事件,而没有onclose事件。
不管页面是关闭还是刷新都会执行onunload事件。
如何捕捉到页面关闭呢?
页面加载时只执行onload
页面关闭时只执行onunload
页面刷新时先执行onbeforeunload,然后onunload,最后onload。
这样我们可以在onbeforeunload中加一个标记,在onunload中判断该标记,即可达到判断页面是否真的关闭了
更完整的兼容ff
代码如下 | |
<mce:script type="text/javascript"><!-- |
上面的方法没办法判断多选项卡的浏览器,如360,ie8这种,下面再看
代码如下 | |
function CloseOpen(event) { function document.onkeydown() { // 本窗口的所有下属页面都必须含有本函数 top.currentKeyCode = event.keyCode; function onbeforeunload(){ <body onunload="CloseOpen(event)" ></body></html> |
上面只有不能使用在任务栏关闭了,基本可以满足我们的要求了。