当前位置: 首页 > 编程日记 > 正文

JavaScript 关闭窗口事件

方式一:(适用与IE浏览器,而且刷新不提示,只在点击浏览器关闭按钮的时候提示)
<script type="text/javascript">
window.οnbefοreunlοad=onclose;
function onclose()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
return "您要离开吗?";
}
}
</script>
----------------------------------------------------------------------------------------------------
方式二:适用与IE和FF,不区分刷新和关闭
<script type="text/javascript">  
   
    window.onbeforeunload = onbeforeunload_handler;  
    window.onunload = onunload_handler;  
    function onbeforeunload_handler(){  
        var warning="确认退出?";          
        return warning;  
    }  
      
    function onunload_handler(){  
        var warning="谢谢光临";  
        alert(warning);  
    }  
 
</script>  
---------------------------------------------------------------------------------------------------
方式三:适用与IE和FF,不区分刷新和关闭,最简单的
<script type="text/javascript">
window.οnbefοreunlοad=onclose;
function onclose()

return "您确定退出吗?";

}
</script>
---------------------------------------------------------------------------------------------------
方式四:适用与IE和FF,不区分刷新和关闭,稍复杂的
<script language="javascript">
var MSG_UNLOAD="如果你此时离开档案系统,所做操作信息将全部丢失,是否离开?";

var UnloadConfirm = {};

//启用监听浏览器刷新、关闭的方法
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下的关闭按钮和快捷键关闭的,刷新不提示
<script type="text/javascript">
window.οnbefοreunlοad=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];
       
        //以下进行测试
        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下有时候失效)
<script type="text/javascript">
window.οnbefοreunlοad=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>
--------------------------------------------
最简单的判断浏览器类型的方法
<script type="text/javascript">
if(-[1,]){
     alert("这不是IE浏览器!");
}else{
     alert("这是IE浏览器!");
}
</script>
[1,]在标准浏览器会返回字符串"1",相当于调用[1,].toString,
,IE则返回"1,"。但是这样IE与标准都会通过检测,因此使用负号强制转换为数字,
标准能成功转换为1,1会在if中自动转换为true,而IE则转换为NaN,再自动转换为false!

转载于:https://www.cnblogs.com/tonykan/archive/2013/01/10/2854736.html

相关文章:

【直播】闫强:文本分类上分利器 -- Bert微调技巧大全

文本分类上分利器 – Bert微调技巧大全 直播信息 主讲人&#xff1a;ChallengeHub成员&#xff0c;中国人民大学硕士。 直播时间&#xff1a;2021年07月25日 15:00~16:00 直播内容&#xff1a; 经典论文介绍与解读模型继续预训练实现交流&答疑 直播网址&#xff1a; …

计算机基础第二课时

文件后缀名 1.也称文件扩展名(filename extension) 2.是操作系统用来标志文件类型的一种机制 3.通常来说&#xff0c;一个扩展名是跟在主文件名后面的&#xff0c;由一个分隔符分隔。例如&#xff1a;“前端开发知识要点.txt”的文件名中&#xff0c;前端开发知识要点是主文件名…

ui培训教程分享:平面设计怎样视觉空间感?

本期UI培训教程为大家分享的是关于平面设计怎样视觉空间感?在UI设计岗位中&#xff0c;视觉空间感对于设计师来说是非常重要的&#xff0c;所谓空间&#xff0c;是指立体形态周围的空虚部分&#xff0c;空间是无限的。任何空间形态的建立都必须借助立体形态来表达&#xff0c;…

Android组件框架:Android组件管理者ActivityManager

关于作者 郭孝星&#xff0c;程序员&#xff0c;吉他手&#xff0c;主要从事Android平台基础架构方面的工作&#xff0c;欢迎交流技术方面的问题&#xff0c;可以去我的Github提issue或者发邮件至guoxiaoxingse163.com与我交流。 第一次阅览本系列文章&#xff0c;请参见导读&a…

[转]HTTP协议详解

当今web程序的开发技术真是百家争鸣&#xff0c;ASP.NET, PHP, JSP&#xff0c;Perl, AJAX 等等。 无论Web技术在未来如何发展&#xff0c;理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解&#xff0c;内…

【Whalepaper】NLP论文研读 - Keyword-Attentive Deep Semantic Matching

Whalepaper是由周郴莲负责的一个每周分享论文的活动&#xff0c;带你研读AI领域的论文&#xff0c;快来一起开源学术科研吧&#xff01; NLP 论文分享&#xff1a;每周日 晚上 九点CV 论文分享&#xff1a; 每周日 晚上 九点Res 论文分享&#xff1a;每周六 晚上 九点半 欢迎…

web前端的就业前景好不好

web前端的就业前景好不好?一直有人都想知道这个答案&#xff0c;其实放眼互联网未来&#xff0c;web前端的发展前景都是非常好的&#xff0c;那么它的就业前景自热也是不错&#xff0c;具体来看看下面的详细介绍就知道了。 web前端的就业前景好不好?近几年的热门行业里&#…

android:HTTP通信 .

HTTP&#xff1a; 超文本传送协议&#xff08;hypertext transport protocol&#xff09;&#xff0c;用于传送WWW方式的数据。属于应用层的面向对象的协议。HTTP采用了请求/响应模型。客户端向服务器发送的请求包含了&#xff1a;请求的方法、URL、协议版本、请求修饰符、客户…

【青少年编程】【三级】打气球游戏

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

(转)如何修改maven的默认jdk版本

背景&#xff1a;在maven的配置文件中配置编译的jdk插件&#xff0c;就不需要在eclipse中进行重新的指定了。 问题 1、创建maven项目的时候&#xff0c;jdk版本是1.5版本&#xff0c;而自己安装的是1.7或者1.8版本。 2、每次右键项目名-maven->update project 时候&#xff…

Python适合初学者或者0基础学习吗?

Python适合初学者或者0基础小白学习吗?很多人都比较关注这个问题&#xff0c;因为近几年Python在互联网行业的发展显而易见&#xff0c;它的就业几率也非常高&#xff0c;具体来看看下面的详细介绍吧。 Python适合初学者或者0基础小白学习吗?与Java、C不同的是&#xff0c;Py…

CS5中动作和批处理

动作类似office里的宏。 窗口---动作。排列过多的图片可以窗口---排列。 先新组&#xff0c;然后新动作&#xff0c;完成后停止录制&#xff1b;点击新图片使其成为当前图片&#xff0c;再点击播放动作。 一个新组下可以有很多动作。 动作定义为快捷键&#xff0c;使用时可以双…

Django模板过滤器详解

Django 模板过滤器也是我们在以后基于 Django 网站开发过程中会经常遇到的&#xff0c;如显示格式的转换、判断处理等。以下是 Django 过滤器列表&#xff0c;希望对为大家的开发带来一些方便。 一、形式&#xff1a;小写   {{ name | lower }} 二、串联&#xff1a;先转义文…

【青少年编程】【三级】 魔术表演“开花”

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

Python培训教程分享:visual studio编写python怎么样?

本期小编要为大家介绍的Python培训教程就是关于“visual studio编写python怎么样?”的问题&#xff0c;但答案当然是可以的&#xff0c;据了解&#xff0c;vs2017、vs2019都集成了python开发&#xff0c;只不过需要在安装的时候单独勾选一下才行&#xff0c;下面小编简单介绍一…

HTTP头入门到精通(每一个HTTP消息头解释)

1. Accept&#xff1a;告诉WEB服务器自己接受什么介质类型&#xff0c;*/* 表示任何类型&#xff0c;type/* 表示该类型下的所有子类型&#xff0c;type/sub-type。 2. Accept-Charset&#xff1a; 浏览器申明自己接收的字符集 Accept-Encoding&#xff1a; 浏览器申明自己接收…

Day2 - Python基础2作业【文件操作--购物车程序(用户操作及商户操作)】

1 # ----user.txt----2 3 {已购商品: , 消费记录: , 余额: 0}4 5 6 # ----commodity.txt----7 8 iPhone,50009 HuaWei,3000 10 XiaoMi,2000 11 oppo,1000 1 #/usr/bin/env python2 #-*- coding:utf-8 -*-3 # Day2/file_shopping.py4 5 _author_ hepidong6 7 import time8 9 # …

【直播】林锦弘:CV赛事高分经验分享

CV赛事高分经验分享 直播信息 分享嘉宾&#xff1a;林锦弘&#xff0c;威斯康星麦迪逊大学&#xff0c;多赛事top10开源方案贡献者。 直播时间&#xff1a;2021年07月29日 20:00 直播内容&#xff1a; 计算机视觉比赛通用流程Top10方案讲解交流&答疑 直播网址&#xf…

UI培训教程分享:APP图标设计的6种风格都有哪些?

在从事UI设计师这个岗位的时候&#xff0c;相信大家会经常遇到关于产品设计的工作&#xff0c;尤其是APP图标这块&#xff0c;在日常工作中&#xff0c;常见的图标风格主要有渐变风格、剪影风格、长投影风格、卡通风格、轻质感风格和拟物风格6种。今天小编就为大家详细的介绍一…

图片基础知识梳理(3) BitmapBitmapFactory 解析

一、概述 今天这篇文章我们来了解一下两个类&#xff1a; BitmapBitmapFactory二、Bitmap 2.1 创建Bitmap 通过Bitmap的源码&#xff0c;我们可以看到它内部提供了很多.createBitmap(xxx)的静态方法&#xff0c;我们可以通过这些方法来获得一个Bitmap&#xff1a; 上述的方法最…

电路实验1-电容充放电

转载于:https://www.cnblogs.com/cutepig/archive/2013/01/17/2865289.html

【直播】陈信达:零基础计算机视觉之机器学习基础

零基础计算机视觉之机器学习基础 直播信息 分享嘉宾&#xff1a;陈信达&#xff0c;Datawhale成员&#xff0c;上海科技大学硕士。 直播时间&#xff1a;2021年07月30日 20:00 直播内容&#xff1a; 线性回归与指针读数识别逻辑回归原理与代码选讲人工神经网络与Fashion-MN…

UI培训分享:如何成为一名优秀的UI设计师

UI设计师在工作岗位中也是分等级的&#xff0c;如何成为一名优秀的UI设计师在如今的职业发展中是非常有必要的&#xff0c;各行各业都在内卷中&#xff0c;那么如何成为一名优秀的UI设计师呢?来看看下面的详细介绍。 UI培训分享&#xff1a;如何成为一名优秀的UI设计师? 好UI…

POJ 2418 Hardwood Species(trie 树)

题目链接 开始想用map的&#xff0c;字典序不会搞&#xff0c;还是老老实实的用trie树把。好久没写了&#xff0c;忘得差不多了。 1 #include <iostream>2 #include <cstdio>3 #include <cstdlib>4 #include <cstring>5 #include <map>6 #includ…

白盒测试实践-任务完成

这次的白盒测试实践已经圆满完成&#xff0c;每个人都分配到了相应的任务&#xff0c;并对各自的任务进行了具体的落实。 分配情况如下&#xff1a; 阶段任务名称任务负责人阶段一测试用例清单安秀芳阶段二静态评审罗阳刚、周成阶段三自动化静态检查滕怡天阶段四基于JUnit的单元…

【第23周复盘】懒癌犯了,拖到今天!

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

软件测试培训分享:软件测试的职业发展方向有哪些

很多人都觉得软件测试在互联网行业入门是比较轻松的&#xff0c;对于如此轻松的行业&#xff0c;它所在的职业发展前景怎么样呢?软件测试的职业发展方向有哪些呢?本期软件测试培训分享内容请看以下详细介绍。 软件测试的职业发展方向有哪些?职业的选择对于现在的年轻人来说相…

【青少年编程】【三级】换装

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

转程序员,都去写一写前端代码吧

转自: http://www.oschina.net/news/36972/programmer-write-frond-end-code 你可以认为我是一个极端的人&#xff0c;就像有许多人专注于自己的领域而不屑于其它“肤浅”的工作范畴一样。比如我见过不少认为做portal没有技术含量的 判定&#xff0c;做工程都是充满苦逼行为的言…

大数据之公开数据的价值

2019独角兽企业重金招聘Python工程师标准>>> 大数据按照访问权限来划分&#xff0c;可分为私有数据和公开数据。私有数据不是每个人都能够自由访问调用的数据&#xff0c;例如银行交易记录、抵押信息、医疗数据、通讯数据、电商交易数据等等。私有数据因其私有性&am…