几大浏览器关闭页面的方法

  今天需要做一个功能,倒计时5s关闭页面,或者直接点击按钮直接关闭页面。开始以为是一个很简单的功能,做的时候还是遇到问题了。

  

1.1  关闭页面的方法

  问题是这样的:开始用的 window.close()方法关闭页面,在IE中测试没有问题。 到了谷歌发现页面并没有关闭,F12打开提示:Scripts may closed only the windows that were opened by it. 大致意思:脚本不能关闭非脚本打开的页面。  后来找到一个折中的办法: 将当期的页面指向blank来替代关闭。 IE下仍可以正常关闭。  

 

  上代码:

 

 

 1  var time = 5;  
 2 
 3         $(function () {
 4             $('#CancelLogin').click(function () {
 5                 closePage();
 6             });
 7 
 8              //5s倒计时
 9             var watchId = setInterval(function () {
10                 time--;
11                 if (time <= 0) {
12                     closePage();
13                 }
14                 $('#msg').text(time + '秒后退出');
15             }, 1000);
16 
17             });
18 }); 
19 
20         function closePage() {
21             // FF中需要修改配置window.close方法才能有作用,为了不需要用户去手动修改,所以用一个空白页面显示并且让后退按钮失效    
22             // Opera浏览器旧版本(小于等于12.16版本)内核是Presto,window.close方法有作用,但页面不是关闭只是跳转到空白页面,后退按钮有效,也需要特殊处理
23             var userAgent = navigator.userAgent;
24             if (userAgent.indexOf("Firefox") != -1 || userAgent.indexOf("Presto") != -1 || userAgent.indexOf("Chrome") != -1) {
25                 document.title = "about:blank";
26                 setTimeout(function () {
27                     window.location.replace("about:blank");
28                 }, 100);
29             } else {
30                 window.opener = null;
31                 window.open("", "_self");
32                 window.close();
33             }
34         }
View Code

 

 

 

  

 

posted @ 2014-12-01 15:59  AfreadHuang  阅读(1051)  评论(0编辑  收藏  举报