繁体   English   中英

如何关闭Internet Explorer中的弹出窗口?

[英]How to close a popup in Internet Explorer?

我需要使用ajax查询第三方站点。 为此,我需要Cookie,我可以通过将网站页面加载到隐藏框架中来进行检索。 但是,我只是看到,如果网站不提供P3P策略,则IE(至少11个)会阻止在框架中设置的cookie。

要解决此问题,我最初考虑过在弹出窗口中打开该网站,然后将其关闭。 但是这似乎是不可能的,因为如果URL不是来自同一域,则window.open的返回值为null

这是一些测试代码:

var foo = window.open(url);
setTimeout(function(){
    foo.close(); // fails in IE as foo is null if url is 3rd-party
}, 2000);

我已经看到了一些限制,例如Window.close只能关闭用js创建的窗口(或要求确认),但是我还没有看到有关跨域的任何信息(例如我的案例)。 顺便说一句,FF和Chrome没有问题。 有什么办法吗?

好的,我终于明白了。 它与相同的来源策略无关。 问题是我正在通过http:// localhost / url访问的页面中测试上述代码。 如果我使用http://127.0.0.1/访问同一页面,则foo变量不为null,可以关闭弹出窗口。

如果有人知道为什么IE中的某些限制适用于本地主机而不适用于127.0.0.1,那么欢迎您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM