js判断页面是关闭还是刷新

JavaScript020

js判断页面是关闭还是刷新,第1张

<body>标签只有onload\onunload\onbeforeunload事件,而没有onclose事件。不管页面是关闭还是刷新都会执行onunload事件。如何捕捉到页面关闭呢?

页面加载时只执行onload

页面关闭时只执行onunload

页面刷新时先执行onbeforeunload,然后onunload,最后onload。这样我们可以在onbeforeunload中加一个标记,在onunload中判断该标记,即可达到判断页面是否真的关闭了。

<html>

<head>

<title>判断页面是关闭还是刷新</title>

</head>

<body onunload="fclose()" onload="fload()" onbeforeunload="bfunload()">

<script language="javascript">

var s = "test"

function fclose()

{

if(s=="no")

alert(’unload me!=’+s+’这是刷新页面!’)

else

alert(’这是关闭页面’)

}

function fload()

{

alert("load me!="+s)

}

function bfunload()

{

s = "no"

}

</script>

</body>

</html>

刷新或关闭页面都会触发onbeforeunload和onunload事件,浏览器没有提供这样的接口来判断是刷新或关闭。

不过有一个不怎么靠谱的办法,就是在onbeforeunload和onunload

回调函数

里面判断鼠标的位置是不是负数,如果是的话,也许就是点了关闭按钮,否则的话也许是按了F5。

我想不到其他办法了