JS关闭当前窗口window.close()方法

过去,当直接调用window对象的close()方法,而不是对window实例调用close()时,浏览器会关闭最前面的窗口,不管脚本是否创建了该窗口。现在,出于安全原因,不再允许脚本关闭未打开的窗口。(Firefox46.0.1:脚本无法关闭尚未打开的窗口)

1.直接调用window对象的close()方法

window.close()

当直接调用window.close()方法时,IE会弹出提示框,询问是否关闭此窗口。
在这里插入图片描述
Firefox则不会关闭页面
Google则会立即关闭当前页面。

2.window实例调用close()方法

针对IE,去除提示框需要创建一个window实例,先打开该窗口,就可以直接关闭。

window.opener = null;
window.open('', '_self');
window.close();

针对FireFox,之所以window.close在firefox不能使用,是因为firefox默认不能关闭用户打开的网页。
利用在当前窗口中打开一个新窗口来替换当前打开的页面,然后关闭该窗口。其中window.open(‘about:blank’,’_self’)返回的是当前窗口的引用。

var opened=window.open('about:blank','_self');   
opened.opener=null;
opened.close();

如果要关闭的页面有父页面,可以使用下面的方法

window.open('','_parent','');
window.close();

3.兼容写法:

if(firefox) {
   var opened=window.open('about:blank','_self');   
   opened.opener=null;
   opened.close();
} else {  
   window.opener = null;
   window.open('', '_self');
   window.close();
}

最直接的办法是在FireFox浏览器中输入about:config,然后找到dom.allow_scripts_to_close_windows项,把false设为true,这样window.close()就可以使用了,FireFox默认状态window.close是无效的。但需要客户去设置,肯定不是开发者想要的。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值