当在同一窗口中打开 URL 时,窗口.Opener 是未定义的
window.opener is undefined when the url is opened in same window
在我们的Angulajs控制器中,我们尝试在同一窗口中打开一个外部URL(这是在同一浏览器中打开URL的要求,而不是创建弹出窗口),使用以下行:
window.open("www.youraddress.com","_self")
当我们尝试获取父窗口的实例(以访问控制器方法)时,我们总是window.opener
为undefined
。你能告诉我可能是什么原因吗?
如果我们使用window.location.href="www.youraddress.com"
可以看到相同的行为
请让我知道我们在这里错过了什么?
如果在同一窗口中打开页面,则旧窗口对象将被销毁。不再有可供window.opener
引用的对象。只有当窗口仍然存在时,您才能继续引用它。即使可以,您也会被拒绝访问其内容,因为您将外部 URL 加载到其中,因此同源策略开始发挥作用。即使不是SOP,过去在该窗口中的所有内容(包括它曾经拥有的JavaScript环境)都会被销毁。
打算继续使用的任何代码或数据都需要位于您尝试使用window.opener
的窗口中(或位于未被替换的另一个相关窗口中)。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 防止Iframe窗体在新窗口中打开
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- Javascript排序的图像弹出窗口..可以't单独弹出
- 窗口大小html css
- 弹出窗口出现,然后退出
- 通过window.opener将弹出窗口中的值传递给父窗口
- 检测window.opener窗口刷新事件
- 跨原点-弹出窗口(window.opener为空)
- 为什么我的firefox扩展javascript不能访问opener窗口,也看不到window.name
- 窗口.黑莓浏览器中的Opener
- 当在同一窗口中打开 URL 时,窗口.Opener 是未定义的
- Javascript :使用window.opener表单弹出窗口将字符串添加到iframe
- 窗口.在IE中同一域的opener为空
- 窗口.重定向后,Opener为空
- 如何知道如果窗口.Opener来自我的网页
- 窗口.opener为空,父窗口无法访问自己的弹出窗口,或JavaScript运行时错误0x800706b5 (faceb
- 窗口.Internet Explorer未定义“opener”
- Firefox 4:动态打开的窗口在旧窗口(如window.opener)中打开新的选项卡