js 浏览器窗口 刷新关闭事件

Posted 三高娘子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 浏览器窗口 刷新关闭事件相关的知识,希望对你有一定的参考价值。

1、beforeunload

当浏览器窗口关闭或者刷新时,会触发beforeunload事件。当前页面不会直接关闭,可以点击确定按钮关闭或刷新,也可以取消关闭或刷新。

2、onbeforeunload

当窗口即将被卸载(关闭)时,会触发该事件.此时页面文档依然可见,且该事件的默认动作可以被取消。

各大浏览器测试结果:

火狐浏览器
刷新时:先执行 onbeforeunload ,新页面即将替换旧页面时 onunload ,最后 onload ;
关闭时:只执行 onbeforeunload

谷歌浏览器
刷新时:先执行 onbeforeunload ,新页面即将替换旧页面时 onunload ,最后 onload ;
关闭时:先执行 onbeforeunload ,再执行 onunload.
小窗口关闭:先执行 onbeforeunload ,onunload

MicsoftEdge浏览器
刷新时:先执行 onbeforeunload ,新页面即将替换旧页面时 onunload ,最后 onload ;
关闭时:只执行 onbeforeunload

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362

IE浏览器
刷新时:先执行 onbeforeunload ,新页面即将替换旧页面时 onunload ,最后 onload ;
关闭时:只执行 onbeforeunload

360浏览器
刷新时:先执行 onbeforeunload ,再执行 onload ;
关闭时:只执行 onbeforeunload

技术图片
window.onload = function(){
    console.log(‘unload操作===========================unload操作‘);
    var userAgent = navigator.userAgent;
    var flag = userAgent.indexOf(‘Firefox‘) > -1 ? true : false;
    window.onunload = function() {
        console.log(‘ooooooooooooooooo操作‘);
        if(!flag){
            console.log(‘ooooooooooooooooo操作‘);
        }else{

        }
    };

    window.onbeforeunload = function () {
        console.log(‘bbbbbbbbbbbbbbbbb操作‘);
        if(flag){
            console.log(‘bbbbbbbbbbbbbbbbb操作‘);
        }else{
            
        }
    };
}
View Code

 

以上是关于js 浏览器窗口 刷新关闭事件的主要内容,如果未能解决你的问题,请参考以下文章

js如何监听窗口的关闭?

js刷新页面

使用onbeforeunload事件检测窗口是否刷新或关闭 .

如何检测浏览器窗口/选项卡关闭事件?

如何使用会话存储以角度区分窗口关闭和窗口刷新

js判断浏览器窗口(选项卡)的关闭与刷新