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

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>

 

 

 

快讯:云计算大会6月召开 云计算概念企业股票飙升 集成开发环境:Qt Creator 2.7.0发布 移动周报:“今日头条”CEO,爱冒险的技术宅 从China Daily的iPad版,看中国纸媒如何摆脱“旧情结” 天睿推出大数据探索平台:“开箱即用”的数据分析 Basho开源Riak CS,与AWS S3兼容的云存储架构 MongoDB Days北京杂记 VMware携手亿阳信通 铺垫混合服务 行业应用,移动优先:移动难七大痛点剖析 HTML5开发必备:游戏开发资源合集 老而弥坚:65岁传奇Android工程师谈开发 2013中国云计算有奖大调查,每周大奖等你拿! Google Reader之死另一个不为人知的原因 小团队谈推广:豆果、金山、微博易、面包旅行 敏捷实战:如何让团队迭代交付周期缩短一半 移动设备管理初创公司AirWatch:首轮融资2亿美元 New Relic:不等应用崩溃,实时监控你的App! Zynga力挽狂澜三步棋:移动+授权+自有网络 巧用MapReduce+HDFS,海量数据去重的五大策略 革自己的命?为带来一致体验 IE11伪装FireFox 最古老的Linux发行版Slackware以及Arch Linux齐弃MySQL JEECG v2.3 发布,基于代码生成器的智能开发框架 Mozilla将设应用工场 Firefox OS瞄准欧洲南美 Summly创始人:12岁开始编程 17岁公司卖了3000万美元 因SaaS与NoSQL,Oracle雄风不在? 那些年云计算领域的大牛们 回顾:那些被平台方封杀的第三方应用 [热帖推荐] 中国的程序员,真的“短命”吗? 聚焦HTML5移动开发 第六届英特尔杯大学生软件开发大赛开幕 虚拟化技术新星Pluribus Networks获中国VC青睐 可穿戴开发!Pebble Watchface SDK 4月发布 yushulei(永远)接分 请问一小段代码 请教rdo访问sql server出现的问题! 如何加锁? 关于数据类型的转换的函数? 我想问一下就是怎么整理把不同条件下的数据放在一个DBGRID的问题 NTFS格式的能否再重新格成FAT32格式? 数据库能否只用一个连接? 寻求廉价远程数据库(internet)连接方案?同时高分悬赏 image字段查询问题? ▲▲▲如何让MDI主窗口显示时向下凹陷的窗口变成平的??▲▲▲ ADOQuery增加记录问题 请教存储过程高手,在线等!急 应聘HR软件方面的实施/咨询要注意什么呢? 小弟 想做个循环滚动 帮忙看一下代码 错在那里了 yushulei(永远)接分 这语句错在哪?select a.* from (SELECT min(id) FROM user )a 怎样列出客户生日来临前的一个星期所有客户名单? 我想做监控的软件,用udp 如何使用?着急! 急需求助!! 怎么样判断一个目录、文件是否存在??? 请教如何在给定的几个数中随机选出3个数? 想参加一个jsp开发组织。那里有? 为什么下面的头文件没有 .h后缀 如何在SAS软件中导入SQL SERVER 2000的数据?谢谢 请教有经验的学长:动态网页在我自己的机器上运行没有问题,但是(急) 一个奇怪的输出问题?各位C高手看过来 如何让Edit1->Text 等于float类型的变量? 菜鸟问题,在线等 Win98下的SOAP. 哪位大侠有installshield 7.0 以上版本的,发我一个,谢谢!!! 在word中用鼠标滚动的时候,左下角的 行 页变化是怎么的出来的,有没有程序呢 请大家看过来,apache配置文件是否有错,超紧急求救! 如何让Edit1->Text 等于float类型的变量? 为何提示不能创建对象?急死我了 在对话框类中怎样向视图类发送刷新视图的消息?谢谢 急,在线等!同样的打印程序(套打),为什么在不同的操作系统下面打印的位置有差别,怎么才能做到同一打印程序在不同的打印机和不同的系 DELPHI+SQL 想要怎么学习才能快速成长 哪个前辈指点指点 请你们指教好吗 串口通信问题 一个排序的问题! JBuilder下的编辑问题 急呀!vba高手帮帮忙? 动态类型转换 关于软件测试,测试结论 大家进来说说 如何在当前目录下调出一个CHM格式的文档? 为什么动态增加的WebBrowser1.Align不能为alClient啊? 怎样通过代码实现CTRL+C和CTRL+V的功能? 有两个问题要问,很难的哟,谁来挑战一下!! 在dll中能不能声明一些类,供外部程序调用?能给个例子最好; 各位,请帮我看看! weblogic6.1中配置好了oracle9i的连接池,名为oracle9,但是编程工程中如何使用这个连接池,希望答复!! 谁能告诉我关于“天不生仲尼,万古如长夜!”的意思? 谁能解释一下“哀,莫大于死心”是什么意思啊 莫大兴趣是什么意思 莫大的打击是什么意思 神仙道先攻值 先攻值如何获得 前文中能与 天幕上已有了疏朗的星星 相照应的句子是什么 天不生仲尼,万古如长夜 下面一句是什么 疏朗的意思是什麽有好评 “天不生仲尼,万古长如夜”是谁的话? corelDRAW12 一个字上下不同颜色要怎么做? "天不生仲尼,出自何处? 白宫网页万人请愿辱华节目被删除李肇星:国内一大企业家在欧洲浪费粮食美军史上首艘超级航母以1美分贱卖尸检报告排除阿拉法特钋中毒 不排除其沙特威胁将疏远美国 分析称美地缘政治印度德里频发未成年人性侵案 作案者为星巴克CEO辩解在中国高定价 称报道伊朗暂停提炼20%纯度铀浓缩 距武器星巴克CEO:对中国媒体抱怨咖啡售价世界最高大的狗在美国去世 存活年龄为土耳其选择中国导弹,有人欢喜有人忧初一到十五 沧州首届文化科技庙会带您春节,我们送您回家 沧州车务段Z41春节话健康:合理搭配饮食 预防食物中春节太“任性” 小心节后综合症参加联合国青年论坛 王源等6名中国青京畿燕赵民俗庙会:正月初五迎财神 倡14岁少年除夕夜抢劫单身女孩:兜里没“加班费多少钱?老爸出,你回家过年…济宁14个景区晋升为AAA级景区男子强奸相亲对象 逃跑时开车将警察脚美容美发师“不老实”,小心春节吃罚单超级读心术宝贝蛋冒牌高手天龙灭情不灭仙灵媚桐人潜龙出海风流修神闪婚狱王虎胆铁军太阳岛旅游城隍庙旅游古城公园旅游安娜塔拉度假村旅游白沙村旅游龙脊旅游红其拉普旅游广东第一峰旅游殷墟博物馆旅游曹操墓旅游袁林旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘