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

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

下面的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基本可以解决关闭浏览器的当前窗口的功能,至于火狐的实现还是比较遗憾!

posted @ 2014-08-27 10:48  史洲宇  阅读(3072)  评论(0编辑  收藏  举报