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{ } }; }
