JS针对浏览器窗口关闭事件的监听方法集锦
本文实例总结了JS针对浏览器窗口关闭事件的监听方法。分享给大家供大家参考,具体如下:
方式一:(适用于IE浏览器,而且刷新不提示,只在点击浏览器关闭按钮的时候提示)
<scripttype="text/javascript"> window.onbeforeunload=onclose; functiononclose() { if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) { return"您要离开吗?"; } } </script>
方式二:适用于IE和FF,不区分刷新和关闭
<scripttype="text/javascript"> window.onbeforeunload=onbeforeunload_handler; window.onunload=onunload_handler; functiononbeforeunload_handler(){ varwarning="确认退出?"; returnwarning; } functiononunload_handler(){ varwarning="谢谢光临"; alert(warning); } </script>
方式三:适用于IE和FF,不区分刷新和关闭,最简单的
<scripttype="text/javascript"> window.onbeforeunload=onclose; functiononclose() { return"您确定退出吗?"; } </script>
方式四:适用于IE和FF,不区分刷新和关闭,稍复杂的
<scriptlanguage="javascript"> varMSG_UNLOAD="如果你此时离开档案系统,所做操作信息将全部丢失,是否离开?"; varUnloadConfirm={}; //启用监听浏览器刷新、关闭的方法 UnloadConfirm.set=function(confirm_msg){ window.onbeforeunload=function(event){ event=event||window.event; event.returnValue=confirm_msg; } } //关闭监听浏览器刷新、关闭的方法 UnloadConfirm.clear=function(){ window.onbeforeunload=function(){}; } UnloadConfirm.set(MSG_UNLOAD); </script>
方式五:只适用于IE6下的关闭按钮和快捷键关闭的,刷新不提示
<scripttype="text/javascript"> window.onbeforeunload=onclose; functiononclose() { varwarnning='<fmt:messagekey="systemMessage.exitWarning"/>'; varbeforeExit='<fmt:messagekey="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); returnwarnning; } } </script>
另附判断浏览器类型的JS
<scripttype="text/javascript"> varSys={}; varua=navigator.userAgent.toLowerCase(); if(window.ActiveXObject) Sys.ie=ua.match(/msie([\d.]+)/)[1] elseif(document.getBoxObjectFor) Sys.firefox=ua.match(/firefox\/([\d.]+)/)[1] elseif(window.MessageEvent&&!document.getBoxObjectFor) Sys.chrome=ua.match(/chrome\/([\d.]+)/)[1] elseif(window.opera) Sys.opera=ua.match(/opera.([\d.]+)/)[1] elseif(window.openDatabase) Sys.safari=ua.match(/version\/([\d.]+)/)[1]; //以下进行测试 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>
区分浏览器,IE和FF分别处理(奇怪的是,IE下有时候失效)
<scripttype="text/javascript"> window.onbeforeunload=onclose; functiononclose() { varSys={}; varwarnning='<fmt:messagekey="systemMessage.exitWarning"/>'; varua=navigator.userAgent.toLowerCase(); if(window.ActiveXObject) Sys.ie=ua.match(/msie([\d.]+)/)[1] elseif(document.getBoxObjectFor) Sys.firefox=ua.match(/firefox\/([\d.]+)/)[1] if(Sys.ie){//forIE if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) { window.event.returnValue=warnning; } } if(Sys.firefox)//forFF returnwarnning; } </script>
最简单的判断浏览器类型的方法
<scripttype="text/javascript"> if(-[1,]){ alert("这不是IE浏览器!"); }else{ alert("这是IE浏览器!"); } </script>
[1,]在标准浏览器会返回字符串"1",相当于调用[1,].toString,
,IE则返回"1,"。但是这样IE与标准都会通过检测,因此使用负号强制转换为数字,
标准能成功转换为1,1会在if中自动转换为true,而IE则转换为NaN,再自动转换为false!
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。