日期:2014-05-16  浏览次数:20381 次

JS关闭窗口兼容Firefox、Chrome、IE(二次总结后)

要想使Chrome,IE,Firefox点击一个按钮调用js方法都自动关闭窗口,应该写成如下的。

function windowclose() {
    var browserName = navigator.appName;
    if (browserName=="Netscape") {
        window.open('', '_self', '');
        window.close();
    }
    else {
        if (browserName == "Microsoft Internet Explorer"){
            window.opener = "whocares";
            window.opener = null;
            window.open('', '_top');
            window.close();
        }
    }
}

<input type=button value="关闭" onclick="windowclose()">

注意:在Firefox中比较特别,如果想上面的代码管用,还要做一定的工作:

如果你使用的是firefox浏览器必须要做以下设置
1、在地址栏输入about:config然后回车,警告确认
2、在过滤器中输入”dom.allow_scripts_to_close_windows“,双击即可将此值设为true
即可完成了
另下面是一些以前发的一些文章,但现在已经不能用了,但部分的东西,还是值得想深入的朋友参考的。
试试下面代码:
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
<input type="button" name="Button" value="关闭窗口" onClick="document.all.WebBrowser.ExecWB(45,1)">
试着改变参数会得到其他一些功能:
WebBrowser.ExecWB(1,1) 打开
WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
WebBrowser.ExecWB(4,1) 保存网页
WebBrowser.ExecWB(6,1) 打印
WebBrowser.ExecWB(7,1) 打印预览
WebBrowser.ExecWB(8,1) 打印页面设置
WebBrowser.ExecWB(10,1) 查看页面属性
WebBrowser.ExecWB(15,1) 好像是撤销,有待确认
WebBrowser.ExecWB(17,1) 全选
WebBrowser.ExecWB(22,1) 刷新
WebBrowser.ExecWB(45,1) 关闭窗体无提示
这些只对IE5.5以上版本有效,我是在IE6下测试的,通过的。

在不是js打开的页面上按window.close(),会有提示框,很烦,现在可以不用了,没有提示框直接关闭窗口。

以前有人贴过利用IE5.5/6.0漏洞做的无提示窗口,
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
<input type="button" name="Button" value="关闭窗口" onClick="document.all.WebBrowser.ExecWB(45,1)">
但后来ie6.0出了补丁,便失效了
现在有一种很简单的无提示关闭窗口代码如下 :
<input type="button" onClick="window.opener='dxy';window.close();" value="IE6最简单的无提示关闭窗口" >