繁体   English   中英

window.opener 可靠吗?

[英]Is window.opener reliable?

JavaScript 的window.opener属性是否可以跨浏览器可靠地使用,并且不受任何安全设置和限制的影响? 开启者和打开的窗口都在同一个域中。

有没有人遇到过麻烦,在某些情况下使用它有不好的体验?

我问是因为我计划构建一个严重依赖它的工具,并且应该支持尽可能多的平台。

我现在在两个广泛使用 window.opener 的站点上担任开发人员,我不知道它何时让我失望。 这些应用程序在 IE[678]、Firefox 和 Webkit 上进行了测试; 我非正式地使用过 Opera,也没有注意到那里的问题。

现在,无论如何,“开启者”关系本质上是脆弱的,因为您无法阻止用户在用于打开单独弹出窗口的主浏览器窗口中访问“cnn.com”。 一旦原始窗口加载了新内容,“子”窗口的“window.opener”引用无论如何都不会对您有任何好处。 同样,当用户打开一个新的主浏览器窗口并导航到您的站点时,您的“孤立”窗口将无法真正找到它。

当然,我不能向您提供 100% 的保证一切都会好:-) 然而,我的故事是真实的。 也许我对“window.opener”的依赖没有你计划的那么严重或深入; 我真的不能说我的应用程序中的一切都依赖于它的工作。

值得注意的是,如果文件不是通过 Chrome 中的 HTTP 连接加载的,window.opener 将不起作用(尽管它在 Safari 中运行良好)。

我在我的应用程序中使用了 window.opener 并发现它很好用。 它的唯一限制是,如果用户激活了弹出窗口阻止程序,则不会打开新窗口,有时会导致问题。

使用yui 面板可以很好地替代(如果弹出窗口阻止程序有问题), JQuery UI也是一个不错的选择。

除此之外,我还没有遇到任何问题,并且它在浏览器中运行良好。

2020 在这里。 不,window.opener 不可靠。 由于多种原因,它在 IE11 中可能是空白的:

1) 如果您导航到子窗口中的新位置,则在页面转换时会清除 window.opener

2) 如果 IE11 配置为保护模式,则不设置 window.opener https://social.msdn.microsoft.com/Forums/ie/en-US/5d9efaa1-78d5-45dc-a04d-d9fde768379f/ie-11- windowopener-in-popup-dialog

3) 如果文件不是通过 Chrome 中的 HTTP 连接加载的(如同级答案中所述)

暂无
暂无

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

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