JS針對(duì)瀏覽器窗口關(guān)閉事件的監(jiān)聽(tīng)方法集錦
本文實(shí)例總結(jié)了JS針對(duì)瀏覽器窗口關(guān)閉事件的監(jiān)聽(tīng)方法。分享給大家供大家參考,具體如下:
方式一:(適用于IE瀏覽器,而且刷新不提示,只在點(diǎn)擊瀏覽器關(guān)閉按鈕的時(shí)候提示)
<script type="text/javascript"> window.onbeforeunload=onclose; function onclose() { if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) { return "您要離開(kāi)嗎?"; } } </script>
方式二:適用于IE和FF,不區(qū)分刷新和關(guān)閉
<script type="text/javascript"> window.onbeforeunload = onbeforeunload_handler; window.onunload = onunload_handler; function onbeforeunload_handler(){ var warning="確認(rèn)退出?"; return warning; } function onunload_handler(){ var warning="謝謝光臨"; alert(warning); } </script>
方式三:適用于IE和FF,不區(qū)分刷新和關(guān)閉,最簡(jiǎn)單的
<script type="text/javascript"> window.onbeforeunload=onclose; function onclose() { return "您確定退出嗎?"; } </script>
方式四:適用于IE和FF,不區(qū)分刷新和關(guān)閉,稍復(fù)雜的
<script language="javascript"> var MSG_UNLOAD="如果你此時(shí)離開(kāi)檔案系統(tǒng),所做操作信息將全部丟失,是否離開(kāi)?"; var UnloadConfirm = {}; //啟用監(jiān)聽(tīng)瀏覽器刷新、關(guān)閉的方法 UnloadConfirm.set = function(confirm_msg){ window.onbeforeunload = function(event){ event = event || window.event; event.returnValue = confirm_msg; } } //關(guān)閉監(jiān)聽(tīng)瀏覽器刷新、關(guān)閉的方法 UnloadConfirm.clear = function(){ window.onbeforeunload = function(){}; } UnloadConfirm.set(MSG_UNLOAD); </script>
方式五:只適用于IE6下的關(guān)閉按鈕和快捷鍵關(guān)閉的,刷新不提示
<script type="text/javascript"> window.onbeforeunload=onclose; function onclose() { var warnning = '<fmt:message key="systemMessage.exitWarning" />'; var beforeExit='<fmt:message key="systemMessage.beforeExitWarning" />'; if(event.clientY<0 && event.clientX>document.body.clientWidth-20 || event.clientY<0 && event.clientX<20 || event.altKey || event.ctrlKey || event.clientY>document.body.clientHeight){ alert(beforeExit); return warnning; } } </script>
另附判斷瀏覽器類(lèi)型的JS
<script type="text/javascript"> var Sys = {}; var ua = navigator.userAgent.toLowerCase(); if (window.ActiveXObject) Sys.ie = ua.match(/msie ([\d.]+)/)[1] else if (document.getBoxObjectFor) Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1] else if (window.MessageEvent && !document.getBoxObjectFor) Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1] else if (window.opera) Sys.opera = ua.match(/opera.([\d.]+)/)[1] else if (window.openDatabase) Sys.safari = ua.match(/version\/([\d.]+)/)[1]; //以下進(jìn)行測(cè)試 if(Sys.ie) document.write('IE: '+Sys.ie); if(Sys.firefox) document.write('Firefox: '+Sys.firefox); if(Sys.chrome) document.write('Chrome: '+Sys.chrome); if(Sys.opera) document.write('Opera: '+Sys.opera); if(Sys.safari) document.write('Safari: '+Sys.safari); </script>
區(qū)分瀏覽器,IE和FF分別處理(奇怪的是,IE下有時(shí)候失效)
<script type="text/javascript"> window.onbeforeunload=onclose; function onclose() { var Sys = {}; var warnning = '<fmt:message key="systemMessage.exitWarning" />'; var ua = navigator.userAgent.toLowerCase(); if (window.ActiveXObject) Sys.ie = ua.match(/msie ([\d.]+)/)[1] else if (document.getBoxObjectFor) Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1] if(Sys.ie) {//for IE if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) { window.event.returnValue = warnning ; } } if(Sys.firefox) //for FF return warnning; } </script>
最簡(jiǎn)單的判斷瀏覽器類(lèi)型的方法
<script type="text/javascript"> if(-[1,]){ alert("這不是IE瀏覽器!"); }else{ alert("這是IE瀏覽器!"); } </script>
[1,]在標(biāo)準(zhǔn)瀏覽器會(huì)返回字符串"1",相當(dāng)于調(diào)用[1,].toString,
,IE則返回"1,"。但是這樣IE與標(biāo)準(zhǔn)都會(huì)通過(guò)檢測(cè),因此使用負(fù)號(hào)強(qiáng)制轉(zhuǎn)換為數(shù)字,
標(biāo)準(zhǔn)能成功轉(zhuǎn)換為1,1會(huì)在if中自動(dòng)轉(zhuǎn)換為true,而IE則轉(zhuǎn)換為NaN,再自動(dòng)轉(zhuǎn)換為false!
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫(huà)特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
JavaScript無(wú)操作后屏保功能的實(shí)現(xiàn)方法
今天組里的同事要寫(xiě)一個(gè)屏保的效果,要求鼠標(biāo)無(wú)操作N秒后進(jìn)入屏幕保護(hù),滑動(dòng)鼠標(biāo)的時(shí)候取消屏幕保護(hù)。我真是難倒了,糾結(jié)了半天,搞定了,下面給大家分享實(shí)現(xiàn)代碼2017-07-07本地圖片預(yù)覽(支持IE6/IE7/IE8/Firefox3)經(jīng)驗(yàn)總結(jié)
遇到的本地圖片預(yù)覽的需求,IE6下可以直接從file的value獲取圖片路徑來(lái)顯示預(yù)覽,IE7和IE8下通過(guò)select獲取file的圖片路徑,再用濾鏡來(lái)顯示預(yù)覽,至于FireFox祥看本文吧,希望可以幫助到你2013-03-03JavaScript實(shí)現(xiàn)小程序圖片裁剪功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)小程序圖片裁剪功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-03-03JavaScript+CSS實(shí)現(xiàn)模態(tài)框效果
這篇文章主要為大家詳細(xì)介紹了JavaScript+CSS實(shí)現(xiàn)模態(tài)框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07完美兼容IE,chrome,ff的設(shè)為首頁(yè)、加入收藏及保存到桌面js代碼
這篇文章主要給大家分享了完美兼容IE,chrome,ff的設(shè)為首頁(yè)、收藏本站及保存到桌面js代碼,有需要的小伙伴參考下。2014-12-12bootstrap-table后端分頁(yè)功能完整實(shí)例
這篇文章主要介紹了bootstrap-table后端分頁(yè)功能,結(jié)合完整實(shí)例形式分析了bootstrap-table后端請(qǐng)求、數(shù)據(jù)分頁(yè)功能具體步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-06-06JS回調(diào)函數(shù)基本定義與用法實(shí)例分析
這篇文章主要介紹了JS回調(diào)函數(shù)基本定義與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript回調(diào)函數(shù)基本概念、功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-05-05