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

  今天需要做一个功能,倒计时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

 

 

 

  

 

你可能感兴趣的:(浏览器)