问题:谷歌浏览器无法使用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的热心回答
XP?试都没法试了,我已经不处理XP好多年!
在win7和mac上的Chrome试是可以关闭的(我是直接控制台测试的)。
可以试试这个(搞错了这个是针对IE的,汗!):
参考来源:
https://support.microsoft.com/zh-cn/kb/884768
还有,搞前端的得想办法主动让用户升级下浏览器,而不是一直那么迁就用户,不然何时是个头。