Javascript 访问被拒绝 - 在 iframe 中不再使用 parent 后无法访问 opener

标签 javascript popup window.opener

这与具有相同错误消息的许多其他类似帖子不同,与域无关。

这是我的设置:

<iframe src='somepage' />

用户可以从某个页面中打开一个弹出窗口,并使用 window.open。假设我的弹出窗口保持打开状态,并且新的源页面“secondPage”被交换到同一个 iframe 中。我的弹出窗口仍然可以是它的“开启者”,但每当我尝试访问开启者时,它都会抛出一个访问被拒绝的脚本错误。

所以我的问题是,我如何才能访问它或检查它是否已关闭以便我不尝试访问它?我试图检查 window.opener.closed 是否返回给我一个 false.....

最佳答案

您的开启器将有一个名为 closed 的属性,您可以检查它是否已关闭(或导航离开)。如果它已关闭,检查 opener 上的任何其他属性将引发错误,因为窗口对象已被销毁。

我刚刚注意到您知道 closed 属性。我以前用过这个,从来没有遇到过问题。

您使用的是什么浏览器?发布您正在运行的代码。如果都失败了,使用 try catch 来检测访问 opener 时发生的错误。

IE 框架错误 您所描述的内容在评论中列为错误 http://msdn.microsoft.com/en-us/library/ms533574(v=VS.85).aspx

关于Javascript 访问被拒绝 - 在 iframe 中不再使用 parent 后无法访问 opener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754435/

相关文章:

javascript - Google Maps API - 未定义热图( map 显示但无法更改)

javascript - 传单弹出窗口,设置关闭事件

html - 将可变大小的可切换 div 居中

javascript - 从 asp 菜单项触发弹出消息

javascript - 如何使用javascript返回父窗口的焦点?

JavaScript window.opener 调用父函数

javascript - 删除标记谷歌地图API。为什么缩放时再次显示标记?

javascript - 如何在传单弹出窗口中导入 html 文本

javascript - 仅显示文本框中的数字

javascript - window.opener.location.indexOf() 函数问题