javascript - 谷歌浏览器下JS无法关闭JSP
天蓬老师
天蓬老师 2017-04-11 09:40:50
[JavaScript讨论组]

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

<section class="btngroup">
    <p class="close" onClick="closePage()"></p>
    <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的热心回答

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
PHPz

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

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

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


setTimeout(window.close,1)

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

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

阿神

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

谢谢@donghanji的热心回答

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号