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

JavaScript010

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>

js判断页面是否关闭、刷新或跳转的方法:

window.onbeforeunload=function (){

alert("===onbeforeunload===")

if(event.clientX>document.body.clientWidth &&event.clientY <0 || event.altKey){

alert("关闭了浏览器")

}else{

alert("正在刷新页面")

}

}

这段代码就是判断触发onbeforeunload事件时,鼠标是否点击了关闭按钮,或者按了ALT+F4来关闭网页,如果是,则认为系统是关闭网页,否则在认为系统是刷新网页。

这样:

//网页当前状态判断var hidden, state, visibilityChangeif (typeof document.hidden !==

"undefined") {

hidden = "hidden"

visibilityChange = "visibilitychange"

state = "visibilityState"} else if (typeof document.mozHidden !== "undefined") {

hidden = "mozHidden"

visibilityChange = "mozvisibilitychange"

state = "mozVisibilityState"} else if (typeof document.msHidden !== "undefined") {

hidden = "msHidden"

visibilityChange = "msvisibilitychange"

state = "msVisibilityState"} else if (typeof document.webkitHidden !== "undefined") {

hidden = "webkitHidden"

visibilityChange = "webkitvisibilitychange"

state = "webkitVisibilityState"}// 添加监听器,在title里显示状态变化

document.addEventListener(visibilityChange, function() {

document.title = document[state]}, false)//初始化页面状态document.title =

document[state]

扩展资料:

注意事项

浏览器对象有onfocus 和 onblur事件可以监听。但是触发这两个事件的前提是页面之前是focus过的。也就是说页面刚刚渲染完,用户在没有页面上任何操作时,页面是不会正常监听这两个事件的;或者页面在打开状态下,但是触发了onblur之后并无页面操作的情况下也不会正常监听这两个事件。

直到,用户操作页面触发focus,之后离开页面才会触发blur,再次点击到当前页面时才会触发focus,如此反复都会触发相应的事件。

触发onblur事件的情况:

1、在chrome浏览器下,点击console面板也会触发blur事件,同样的,前提是之前是focus的状态。

2、页面最小化。

3、浏览器切换tab页面。

4、页面中的任何弹窗。

5、focus状态下切换到其他应用。