谷歌浏览器下JS无法关闭JSP

问题:谷歌浏览器无法使用JS关闭当前页
场景:A.jsp表单提交成功后跳转至B.jsp,在B页面点击按钮触发JS关闭当前页面,在IE测试可以关闭,谷歌无法实现.
代码:
html代码:

<section class="btngroup">
    <div class="close" onClick="closePage()"></div>
    <br/><br/><br/>
</section>

JS代码:

    function closePage(){
        console.log("进入js");
            if(navigator.userAgent.indexOf("MSIE") > 0){
                console.log("MSIE");
                if(navigator.userAgent.indexOf("MSIE 6.0") > 0){
                    console.log("MSIE 6.0");
                 window.opener = null;
                 window.close();
                }else{
                    console.log("MSIE 6.0 else");
                 window.open('', '_top');
                 window.top.close();
                }
             }
             else if(navigator.userAgent.indexOf("Firefox") > 0){
                 console.log("Firefox");
                window.location.href = 'about:blank ';
             }else{
                 console.log("谷歌");
                window.opener = null;
                window.open('','_self','');
                window.close();
             }
    }
    
    百度搜索出的结果基本都是用此方法,在两台电脑上(XP系统)的谷歌都无法关闭,请教各位该如何改进?谢谢
     

我在主楼里代码没有问题,导致无法关闭网页的原因是我并没有模拟真实业务,业务场景是从网页A中打开网页B,而我在开发过程中是直接在浏览器中输入网页B的地址测试,所以无效,后来在真实环境中测试是可以关闭的,需要注意的是在网页A中打开网页B时,打开方式应该设置成_blank

谢谢@donghanji的热心回答

阅读 5.9k
2 个回答

XP?试都没法试了,我已经不处理XP好多年!

在win7和mac上的Chrome试是可以关闭的(我是直接控制台测试的)。

可以试试这个(搞错了这个是针对IE的,汗!):


setTimeout(window.close,1)

参考来源:
https://support.microsoft.com/zh-cn/kb/884768

还有,搞前端的得想办法主动让用户升级下浏览器,而不是一直那么迁就用户,不然何时是个头。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题