关于js中close()方法的兼容性问题

本文探讨了在不同浏览器(Chrome、IE、Firefox)中使用JavaScript进行窗口操作时的兼容性问题,特别是在关闭窗口功能上的差异。通过修改Firefox的配置项dom.allow_scripts_to_close_windows,可以使关闭窗口的功能在所有主流浏览器上正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说现象和解决办法:

在Chrome中点击“关闭当前窗口”后当前窗口会直接关闭

在ie(7及以上)中点击“关闭当前窗口”后会出现一个对话框再关闭

在Firefox中点“打开新窗口”后,点“关闭新窗口”没有问题,点击“关闭当前窗口”后页面没反应,

控制台会输出

解决办法:在浏览器地址栏中输入 about:config  在配置列表中找到 dom.allow_scripts_to_close_windows 
右键点击切换,false变为true就行啦

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
打开新窗口:打开一个新的窗口<br>
关闭新窗口:关闭之前打开的新窗口<br>
关闭窗口:关闭当前窗口<br>
<input type="button" value="打开新窗口">
<input type="button" value="关闭新窗口">
<input type="button" value="关闭当前窗口">
<script>
    var oBtn = document.getElementsByTagName("input");
    var opener = null;
    oBtn[0].onclick = function () {
        opener = open();
    };
    oBtn[1].onclick = function () {
        opener.close();
    };
    oBtn[2].onclick = function () {
        close();
    };
</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值