JS針對(duì)瀏覽器窗口關(guān)閉事件的監(jiān)聽方法集錦
本文實(shí)例總結(jié)了JS針對(duì)瀏覽器窗口關(guān)閉事件的監(jiān)聽方法。分享給大家供大家參考,具體如下:
方式一:(適用于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 "您要離開嗎?";
}
}
</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í)離開檔案系統(tǒng),所做操作信息將全部丟失,是否離開?";
var UnloadConfirm = {};
//啟用監(jiān)聽瀏覽器刷新、關(guān)閉的方法
UnloadConfirm.set = function(confirm_msg){
window.onbeforeunload = function(event){
event = event || window.event;
event.returnValue = confirm_msg;
}
}
//關(guān)閉監(jiān)聽瀏覽器刷新、關(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>
另附判斷瀏覽器類型的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)單的判斷瀏覽器類型的方法
<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ì)通過檢測(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)容感興趣的讀者可查看本站專題:《JavaScript中json操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫特效與技巧匯總》、《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 四則運(yùn)算精度修正函數(shù)代碼
JS預(yù)算精度問題確實(shí)很麻煩,這個(gè)能解決一些問題,雖然有bug.2010-05-05
JavaScript通過join函數(shù)連接數(shù)組里所有元素的方法
這篇文章主要介紹了JavaScript通過join函數(shù)連接數(shù)組里所有元素的方法,實(shí)例分析了javascript中join函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
JavaScript手寫源碼之實(shí)現(xiàn)arrify轉(zhuǎn)數(shù)組
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)arrify轉(zhuǎn)數(shù)組,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一點(diǎn)的幫助,需要的可以參考一下2023-02-02
去除element-ui中Dialog對(duì)話框遮罩層方法詳解
這篇文章主要為大家介紹了去除element-ui中Dialog對(duì)話框遮罩層方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
解決微信內(nèi)置瀏覽器返回上一頁(yè)強(qiáng)制刷新問題方法
微信內(nèi)置瀏覽器在返回上一頁(yè)面,且上一頁(yè)面包含AJAX代碼時(shí),頁(yè)面就會(huì)被強(qiáng)制刷新,極度影響用戶體驗(yàn)。而我們想要的效果是:返回上一頁(yè)面時(shí),頁(yè)面還停留在原來的狀態(tài),AJAX獲取到的數(shù)據(jù)還在,滾動(dòng)條也在原來的位置。下面跟著小編一起來看下吧2017-02-02
離開頁(yè)面時(shí)檢測(cè)表單元素是否被修改,提示保存的js代碼
離開頁(yè)面時(shí),檢測(cè)表單元素是否被修改,然后給出提示.防止用戶錯(cuò)失修改的機(jī)會(huì),提高用戶體驗(yàn)。2010-08-08
拖動(dòng)Html元素集合 Drag and Drop any item
拖動(dòng)Html元素集合 Drag and Drop any item...2006-12-12
javascript實(shí)現(xiàn)的仿51job地址多項(xiàng)選擇方式效果
分享一個(gè)類似51job方式的地址選擇效果2009-12-12

