如何关闭浏览器窗口而不收到“是否要关闭此窗口”提示?

IT技术 javascript browser
2021-02-05 00:18:17

如何关闭浏览器窗口而不收到是否要关闭此窗口提示?

当我使用该window.close();功能时出现提示

6个回答
window.open('', '_self', ''); window.close();

这对我有用。

在 Firefox 38.0.5 和 Chrome 43 中工作
2021-03-17 00:18:17
适用于 IE11、Safary 5.1.7,但不适用于 FF 和 Chrome。
2021-03-24 00:18:17
不确定这是否适用于所有浏览器,但它适用于 IE11 !!!目前我们必须为哪个浏览器构建。谢谢你的回答,帮我省了很多麻烦。
2021-03-24 00:18:17
如果窗口是使用打开的showModalDialog怎么办?它不适用于 IE10
2021-04-01 00:18:17
在 IE 11、Chrome 76.0.3809、Firefox 69.0 中运行良好
2021-04-02 00:18:17

不允许脚本关闭用户打开的窗口。这被视为安全风险。尽管它不在任何标准中,但所有浏览器供应商都遵循这一点(Mozilla 文档)。如果这种情况发生在某些浏览器中,那么这是一个安全漏洞,(理想情况下)会很快得到修补。

这个问题的答案中的任何黑客都不再有效,如果有人想出另一个肮脏的黑客,最终它也会停止工作。

我建议你不要浪费精力去解决这个问题,而要接受浏览器提供给你的方法——在你似乎使他们的页面崩溃之前询问用户。

@duskwuff 那些留下窗户的第三方库呢?您当然不能建议我只是为用户留下混乱或将他们重定向到主页的(重复)视图。
2021-03-12 00:18:17
或者,甚至更简单:根本不要关闭窗口。完成后,将用户发送回您的主页,或其他某种类型的中心位置。
2021-03-13 00:18:17
@ouflak 当然,您的测试框架有一些方法可以操作窗口。
2021-03-19 00:18:17
@duskwuff,我们正在针对这些浏览器运行自动化测试。他们需要关闭
2021-03-20 00:18:17
您能否在您的回答中作为脚注也解释一下,为什么它是安全风险。
2021-03-28 00:18:17

我的朋友......有一种方法,但“hack”并没有开始描述它。您必须基本上利用 IE 6 和 7 中的错误。

每次都有效!

而不是调用window.close(),重定向到另一个页面。

打开页面:

alert("No whammies!");
window.open("closer.htm", '_self');

重定向到另一个页面。这会愚弄 IE,让您关闭此页面上的浏览器。

关闭页面:

<script type="text/javascript">
    window.close();
</script>

厉害吧?!

self.close() 和 window.close() 都不适用于我这边的 IE。但是,Chrome、FF 和 Safari 都很好
2021-03-13 00:18:17
看起来微软已经在 IE10 中修复了这个错误。有人知道我们如何在 IE10 中实现这一目标吗?
2021-03-23 00:18:17
我知道已经2年了。但它太棒了..适用于 IE 8 和 firefox 15
2021-03-30 00:18:17

这是我用来在没有提示或警告的情况下关闭浏览器的 Javascript 函数,它也可以从 Flash 调用。它应该在 html 文件中。

    function closeWindows() {
         var browserName = navigator.appName;
         var browserVer = parseInt(navigator.appVersion);
         //alert(browserName + " : "+browserVer);

         //document.getElementById("flashContent").innerHTML = "<br>&nbsp;<font face='Arial' color='blue' size='2'><b> You have been logged out of the Game. Please Close Your Browser Window.</b></font>";

         if(browserName == "Microsoft Internet Explorer"){
             var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;  
             if (ie7)
             {  
               //This method is required to close a window without any prompt for IE7 & greater versions.
               window.open('','_parent','');
               window.close();
             }
            else
             {
               //This method is required to close a window without any prompt for IE6
               this.focus();
               self.opener = this;
               self.close();
             }
        }else{  
            //For NON-IE Browsers except Firefox which doesnt support Auto Close
            try{
                this.focus();
                self.opener = this;
                self.close();
            }
            catch(e){

            }

            try{
                window.open('','_self','');
                window.close();
            }
            catch(e){

            }
        }
    }
不适用于 Firefox,IE/Edge 会显示确认提示——不过它适用于 Chrome。
2021-03-21 00:18:17
在 IE 10.0.9200 上,使用showModalDialog. On closeWindows,它打开一个新窗口(同一页面),而前一个窗口仍然打开。
2021-04-03 00:18:17

这适用于 Chrome 26、Internet Explorer 9 和 Safari 5.1.7(使用帮助页面,ala Nick 的回答):

<script type="text/javascript">
    window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>

嵌套window.open是为了让IE 不显示Do you want to close this window提示。

不幸的是,无法让 Firefox 关闭窗口。

也适用于 IE 10。
2021-03-22 00:18:17