说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Javascript如何检测浏览器关闭了小叉叉

HTML文档下载 WORD文档下载 PDF文档下载
有时候我们需要在浏览器关闭前做一些工作,这就涉及到了关闭事件的检测。

有时候我们需要在浏览器关闭前做一些工作,这就涉及到了关闭事件的检测。

下面是一个很简单的例子:

 

function CheckBrowser(){     // 检测浏览器关闭 [X] , Alt+F4 , 文件 -> 关闭       if(window.event.clientX < 0 && window.event.clientY <0)    {          window.open("Operation.aspx",                 "Operation",'left=12000,top=1200,width=10,height=1');    }}
上面的代码实现了检测事件动作的位置,并打开一个新的窗口。
从Body Unload中挂接上CheckBrowser函数即可。

 

上面的代码实现了检测事件动作的位置,并打开一个新的窗口。

从Body Unload中挂接上CheckBrowser函数即可。

下面我们看一下如何挂接这个事件的例子:
<html><head><title>检测浏览器退出</title><script type="text/javascript" language="Javascript">function DetectBrowserExit(){   alert('退出前想要执行的任务');}window.onbeforeunload = function(){ DetectBrowserExit(); }</script></head><body>检测浏览器退出</body></html>
如果你使用JQuery,则可以这样做:
$(document).ready(function() {    $(window).bind("beforeunload", function(e) {            if (!e) e = window.event;            returnValue = '您真的要关闭吗?';            e.returnValue = returnValue;            return returnValue;    });});
在下面这些浏览器都可以运行:
Internet Explorer
Mozilla Firefox
Google Chrome
Safari
但在某些浏览器,例如Opera中并不支持onbeforeunload,这个时候如果我需要检测表单中内容更改,在关闭窗口前给一个提示,我们可以使用一个叫FormNavigate的JQuery插件,
插件的源代码如下(jquery.FormNavigate.js):
/** * addon by Egor SpirITzzz Dubrovsky (http://spiritzzz.com/) * jQuery.FormNavigate.js * jQuery Form onChange Navigate Confirmation plugin * Browser Compatibility : IE 6.0, 7.0, 8.0; Firefox 2.0+;  Safari 3+; Opera 9+; Chrome 1+; * * Copyright (c) 2009 Law Ding Yong *  * Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * * See the file license.txt for copying permission. */  /**  * Documentation :  * ==================  *  * How to Use:  * $("YourForm").FormNavigate("YourMessage");  *  -- "YourForm" as Your Form ID $("#form") or any method to grab your form  *  -- "YourMessage" as Your onBeforeUnload Prompt Message Here  * Addon:  * $("YourForm").FormNavigate({  *     message: "Message! \n Confirm?",  *     aOutConfirm: "#DivID a.confirm, #DivID2 a"  * });  * aOutConfirm - optional, default - a;  *  * This plugin handles onchange of input type of text, textarea, password, radio, checkbox and file to toggle on and off of window.onbeforeunload event.  * Users are able to configure the custom onBeforeUnload message.  */var global_formNavigate = true;		// Js Global Variable for onChange Flag(function($){    $.fn.FormNavigate = function(options){        window.onbeforeunload = confirmExit;                var defaults = {             message: '',                      aOutConfirm: 'a[target!=_blank][target!=blank]'                 };        var settings = $.extend(false, defaults, options);                 function confirmExit(){              if (global_formNavigate){}            else {                return settings.message;             }        }               if (options.aOutConfirm && options.aOutConfirm != defaults.aOutConfirm){               $(settings.aOutConfirm).each(function(){                $(this+"[target!=_blank][target!=blank]").addClass("aOutConfirmPlugin");                   });            $("a:not([class~='aOutConfirmPlugin'], a[target!=_blank][target!=blank])").click(function(){                    global_formNavigate = true;                   });        }                $(settings.aOutConfirm).click(function(){            if (global_formNavigate == false){                if(confirm(settings.message)){                    global_formNavigate = true;                    return true;                }  else return false;            }        });        $(this).find("input[type=text], input[type='textarea'], input[type='password'], input[type='radio'], input[type='checkbox'], input[type='file']").live('change keypress', function(event){            global_formNavigate = false;        });                $(this+ ":submit").click(function(){            global_formNavigate = true;        });    }})(jQuery);
使用方法举例:
<script type="text/javascript" src="jquery.FormNavigate.js"></script>    <script type="text/javascript">	$(document).ready(function(){        $("form").FormNavigate({            message: "表单已经改变! \n 你真的要关闭本页面吗?",            aOutConfirm: "a.confirm"        });    });    </script><form method="get" enctype="text/plain">    <input value="Input test"/><br /><br />    <textarea>Textarea test</textarea><br /><br />    <input type="submit" value="Send"/></form>

 

 

 

豌豆“荚”油!B轮融资1.2亿美元的豌豆荚 2013年终盘点:10款最精巧的硬件开发板 SquareWear:可替代Lilypad Arduino的开发板 开放数据:2014年最热门的竞争领域 IE11虚拟机免费面向广大开发者 九城搭建的一个以Hadoop为基础的大数据平台 Windows 8复杂性的代价到底有多大? 在发布前,第一代iPhone其实并不完善 市场占有率调查:iOS 7秒杀Android 4.4 AWS会赢、OpenStack会消亡、Connected Cars可防僵尸攻击 谷歌以32亿美金收购iPod之父的创业公司Nest 物联网时代来临 微软2014,有你期待的吗? 映趣科技发布inWatch Z/inWatch X 后者采用全彩透明柔性屏 程序员没有天才:暴风影音首席架构师鲍金龙访谈 开放式创新改变世界——OpenStack生态系统将重新洗牌 Java 8最终发布日期敲定,即使有bug也要发布 Meteor PK Django,谁更适合开发实时Web应用? 学编程就像选家具:去宜家还是从种树开始? 前车之鉴 十二个年度最差设计网站汇集 冷暖交替,2014年编程兴衰趋势预测 诺基亚出Android手机,微软或将受惠 苹果不收购Nest的大猜想 Netflix开源S3一致性提升利器S3mper Fi 《近匠》第06期:UCloud——目标!完整云服务 小三上位:Windows Phone不容忽视的契机 “详解Visual Studio 2013”全国巡讲北京站:无忧开发iOS及Android应用 Chrome最新版:快速静音及在Win8中建Chrome OS系统 雅虎COO Henrique de Castro因业绩不佳被解雇 分析比特币背后的数据算法,抢占背后巨大市场先机 美食菜谱将会成创业风口的两大理由 Windows XP杀毒软件更新 将被延至2015年7月 想当鼠标在某一个label上时,这个label就变色。请问,怎么能够最简单的实现这个功能(需要高手)? 有人认识小反吗?告诉她我在找她。 高分请教,如何用JAVA实现浏览局域网里的其他机子的目录。在线等待 winsock可否在internet下传输文件 简单问题,恢复有分!!! 界面问题——buider做出来的界面太普通了 简单问题,回复有分!!! 第一次放这么多的分>>>>>>>>>>请进来看看(一周以内结帖) (6)今夜狂放1000分,100分只给前3个,第一个来报到的50分,第二个30分,第三个20分:)需要分的来吧:)前500分已经放出。。 简单问题,回复有分!!! 100分紧急求救:因在asp网页中需用www.myweb.com.cn/ok.asp url,我的win2k server该怎样配置? 大家好,我现在正做俄罗斯方块,大家能跟我说他的基本思想吗? 我想这是大家都想要的东西? 简单问题,回复有分!!! web server是不是就是用php等语言写后台程序? 页面间参数传递的问题!(结贴率100%) tocamt服务的自动启动和手工启动有何区别? 请教:金山词霸的屏幕取词用的是什么技术。是怎么实现的 用Delphi的朋友,公布我们的MSN帐号,大家互相学习好吗? 哪里有weblogic6.1 sp4 下载!!! window.print怎样才能不在页底打印页面的标题地址信息? 我的显示器怎么会有重影?? 请问如何用jsp实现如vb中的SSTab控件那样的效果? 有没有消息分数线什么时候出来啊??? 源码大放送2(注:适合新手以及和我一样懒的人!! ~v~) UTF-8?将字符转成UTF-8用PHP如何做??急? 类似matlab中simulink的界面如何实现?散分 关于分页显示的问题 截获getprocaddress遇到的问题. 請各位幫幫忙,關於剛開始安裝的問題: sql 查询? 怎样判断程序是否在运行,如果运行怎样关闭他呢? POP3邮件接收问题!!! 几个月来一直未解决的小BUG(多文档的标题) PB中怎么样定义游标变量 本人欲求计算机画图中的橡皮筋技术画线例程,请大家指教并加相关注释,先帖出代码都得分. 只为试一下新下的放分机,10钟后结贴 急急急!!!!!!!!!如何用ADO连接Sybase数据库? 这是广告,不知道是不是真的,没兴趣不要看啊 求购工程设计院信息管理集成系统的设计文档与源代码 想通了过问题,散分 那位大哥做过网络规划,系统集成方面的,我想电话求教,能帮个忙吗??? how to get chinese type method? 如何响应键盘事件? (7)今夜狂放1000分,8:15结帐:)需要分的来吧:)前600分已经放出。。 小问题,恳请帮忙,在线等候! 如何实现两个数据库之间的实时通讯? 高分请教,如何用JAVA实现浏览局域网里的其他机子的目录。在线等待 主板上是USB1。0的接口用USB2。0标准的移动硬盘,有办法安装使用吗?(在线等候) 探讨一下JSP的多国语言实现 这样一个功能怎么实现(在线等待) 大学音乐老师赵晗 好声音舞台释放多年唐玄宗御笔手书藏头“朕略萌” 网友林妙可夏威夷度假 发胖晒泳装照变半熟清华男神刘也行 刷新一站到底记录好声音刘籽辰:用实力证明我不是一个娘分班倒计时 哈林奋起直追狂揽五名好声塔斯肯成遗珠 好声音史上最遗憾学员去徐娇16岁生日晒萝莉照 变身校园萌妹梦粥扒皮“好声音” 谜团八:选手转身梦粥扒皮“好声音” 谜团七:导师最不梦粥扒皮“好声音” 谜团六:为什么他梦粥扒皮“好声音” 谜团五:汪峰是否梦粥扒皮“好声音” 谜团四:“东北好香港小姐20强出炉 遭网友犀利吐槽梦粥扒皮“好声音” 谜团三:失败学员梦粥扒皮“好声音” 谜团二:成名歌手梦粥扒皮“好声音” 谜团一:学员会被韩红接连两日违反交通法规 微博致歉真正的中国好声音塔斯肯 “拿什么留住“好声音倪鹏” 火车司机的音乐梦想“槿汐姑姑”孙茜大婚 甄嬛小主们重聚英拉出国旅行申请遭驳回人勤春来早寒假“安全作业”创业须有“善败”的准备张家宝同志逝世中科大研制出新型水凝胶国内钢价跌幅收窄皖江示范区倾力打造创新高地省委政法工作会议召开“个人税号”不可小觑我省著名商标达2343件清除“国企蛀虫”探月工程完成嫦娥五号调相试验信息公开,如何让公众更满意?NBA每日一囧:哈登被小弟篡权 邓肯魏秋月术后回国膝伤未彻底恢复 走路仍美候任国防部长称将研制核巡航导弹 应收钱放行 按岗分赃我省首个养老服务园开建外贸弱势开局 出口压力增大朝鲜发射5枚疑似短程导弹
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘