瀏覽器關閉事件相容性
阿新 • • 發佈:2018-12-11
一般會有這樣的一個場景,就是使用者在關閉瀏覽器的時候我們需要讓使用者賬號自動登出。
所以會用到瀏覽器的關閉事件。
現在市場上又有各種花裡胡哨的瀏覽器,他們之間的相容性又都不一樣,所以做個相容煩的要死。
接下來就說說這個關閉事件相容,(只供參考)
程式碼1:判斷使用者當前用的什麼花裡胡哨瀏覽器
var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字串 var isOpera = userAgent.indexOf("Opera") > -1; //判斷是否Opera瀏覽器 var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判斷是否IE瀏覽器 var isIE11 = userAgent.indexOf("rv:11.0") > -1; //判斷是否是IE11瀏覽器 var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判斷是否IE的Edge瀏覽器
程式碼2:根據使用者的花裡胡哨瀏覽器去分別執行邏輯
if(!isIE && !isEdge && !isIE11) {//相容chrome和firefox var _beforeUnload_time = 0, _gap_time = 0; var is_fireFox = navigator.userAgent.indexOf("Firefox")>-1;//是否是火狐瀏覽器 window.onunload = function (){ _gap_time = new Date().getTime() - _beforeUnload_time; if(_gap_time <= 5){ $.post('/AdminController/logOn/?adminId='+adminId);//瀏覽器關閉 }else{//瀏覽器重新整理 } } window.onbeforeunload = function (){ _beforeUnload_time = new Date().getTime(); if(is_fireFox){//火狐關閉執行 $.post('/AdminController/logOn/?adminId='+adminId);//瀏覽器關閉 } }; }else {//相容ie8,9,10 window.onbeforeunload = function() { $.ajax({ type: "post", url: "/AdminController/logOn/", data:{"adminId": adminId}, success: function() { }, async:false }); } window.onunload = onclose; function onclose(){ } }