兼容所有浏览器的窗口关闭方法

平时在做项目的时候会碰到在页面点击文字直接退出浏览器窗口的效果!但是浏览器在实现关闭效果是不一致的!

下面的demo介绍的这个demo可以正常关闭ie,chrome等主流浏览器!但是火狐的实现是通过打开一个空页面来实现的!如果要实现和ie一样关闭的效果,需要开启相应的权限!

按照如下所示操作:

打开firefox,在地址栏输入about:config
找到dom.allow_scripts_to_close_windows这项并改为true。

但是做出来的页面是给用户体验的,这种需要用户更改设置的方式往往是不可取的!所以这里我就通过打开空页面来代替!

demo如下:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8"/>
    <title>window_close</title>
</head>
<body>
<a href="javascript:;" onclick="CloseWebPage()">关闭窗口</a>
</body>
</html>
<script type="text/javascript">
        function CloseWebPage() {            //判断是否为ie
            if (navigator.userAgent.indexOf("MSIE") > 0) {                //判断是否为ie6
                if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {
                    window.opener = null; window.close();
                }
                else {
                    window.open(‘‘, ‘_top‘); window.top.close();
                }
            }            //判断是否为firefox
            else if (navigator.userAgent.indexOf("Firefox") > 0) {
                window.location.href = ‘about:blank ‘;
            }            //其他非firefox等主流浏览器如chrome,safari
            else {
                window.opener = null;
                window.open(‘‘, ‘_self‘, ‘‘);
                window.close();
            }
        }
    </script>

上面的demo基本可以解决关闭浏览器的当前窗口的功能,至于火狐的实现还是比较遗憾!

时间: 2024-10-07 19:59:13

兼容所有浏览器的窗口关闭方法的相关文章

兼容各浏览器的鼠标滚轮事件

今天趁着工作闲暇的时间,写了一个简单的兼容各浏览器的鼠标滚轮方法: 代码: function mouseWheel(){ if(document.addEventListener){ document.body.addEventListener('mousewheel',function(e){ Detail(e); e.stopPropagation(); e.preventDefalut(); }); document.body.addEventListener('DOMMouseScrol

js 判断浏览器关闭事件 兼容所有浏览器

无论是从页签处关闭浏览器,还是关闭整个浏览器窗口,无论是 ie11,火狐,谷歌,苹果,还是ie6,都能兼容的浏览器关闭事件监听 在网上搜索了一天,虽然网上也有之类的代码,但是太繁琐,有时候还不可用.我也是在原有基础上修改的.经过了上述的浏览器测试,如果有不兼容的,欢迎提出意见一起学习. ? <script type="text/jscript" src="jquery-1.10.2.min.js"></script> <script t

layer.js子窗口关闭并传数据到父窗的方法

昨晚整了很晚,一直找不到方法.去官网api看了好久,又在网上搜了很久 始终找不到答案.今天自己终于找到了方法. 难点:因为 确认和取消按钮都是在父窗 调用js生成的按钮.只能从父窗回调的时候去去数据并关闭子窗口.并不是子窗口自己关闭并把数据传到父窗.而网上给出的很多答案都是子窗口自己关闭并传数据到父窗的方法. [贴出我自己的代码,大概实现了流程.具体自己根据情况修改] 我的代码功能是 子窗口要传递数组给父窗,具体复杂的数据格式(如json等)类似 1.子窗口代码 var urls; functi

【转】向HTML中插入视频并兼容所有浏览器的方法

原文地址:http://www.jb51.net/web/168548.html 向HTML中插入视频有两种方法,一种是古老的object标签,一种是html5中的video标签,前者兼容性相对好些,后者兼容性让人头疼 最常用的向HTML中插入视频的方法有两种,一种是古老的<object></object>标签,一种是html5中的<video></video>标签. 前者的兼容性没得说,但是使用起来不太方便,后者使用起来很方便,但是兼容性让人头疼. 虽然后

向HTML中插入视频并兼容所有浏览器的方法

最常用的向HTML中插入视频的方法有两种,一种是古老的<object></object>标签,一种是html5中的<video></video>标签. 前者的兼容性没得说,但是使用起来不太方便,后者使用起来很方便,但是兼容性让人头疼. 虽然后者兼容性存在很多问题,但是因为使用很方便,符合未来网页设计发展的趋势,因此我们以后者为主要的插入视频的方法,因为它兼容性的问题,前者作为辅助. 代码如下: <video width="602px"

浏览器窗口关闭

[注:以下方法可能不适用移动端.微信] 一般的窗口关闭的JS如下写法: window.close() 但是呢,chrome,firefox等中有时候会不起作用. 改为下面的写法: window.open("about:blank","_self").close() 或者 window.open("","_self").close() 如果是frame的时候如下写法: 一般:window.top.close() 改善:windo

C# WPF MVVM 更符合模式理念的关闭View Window(窗口)方法

因为很简单,博客就不多写了,下载项目看下代码相信你就能理解. 既然要前后台分离,就不应该在ViewModel中直接操作View Window,我们可以用数据绑定的方法去操作它,给窗口绑定一个状态属性,为1时关闭窗口. 在开发过程中我们不可能每个窗口后台都手动加上这个属性,所以新建一个类,继承Window,在这个类添加一个依赖属性,用于判断窗口是否应该关闭,然后所有窗口只要使用这个类即可. (普通属性不能绑定,需要依赖属性才行) TmdWindow.cs using System; using S

css样式兼容不同浏览器问题解决办法

在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网站,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 通用 height: 100px; IE6 专用 _height: 100px; IE6 专用 *height: 100px; IE7 专用 *+height: 100px; IE7.FF 共用 height: 100px !important; 一.CSS HACK 1, !important

在PC上测试移动端网站和模拟手机浏览器的5大方法

查了很多资料,尝试了大部分方法,下面将这一天的努力总结下分享给大家,也让大家免去看那么多文章,以下介绍的方法,都是本人亲自测试成功的方法,测试环境winxp. 一.Chrome*浏览器 chrome模拟手机总共有四种方法,原理都一样,通过伪装User-Agent,将浏览器模拟成Android设备.以下标星的为推荐方法. 1.新建Chrome快捷方式 右击桌面上的Chrome浏览器图标,在弹出的右键菜单中选择"复制",复制一个图标副本到桌面.右击该副本,选择"属性",