【问题标题】:Javascript access denied - can't access opener after parent is no longer used in an iframeJavascript 访问被拒绝 - 在 iframe 中不再使用父级后无法访问开启器
【发布时间】:2012-01-06 06:56:17
【问题描述】:

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

这是我的设置:

<iframe src='somepage' />

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

所以我的问题是,我怎样才能访问它或检查它是否已关闭,所以我不尝试访问它?我试图检查 window.opener.closed 是否返回错误.....

【问题讨论】:

  • “I”这个词在英语中是大写的,句子的开头也是。

标签: javascript popup window.opener


【解决方案1】:

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

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

你用的是什么浏览器?发布您正在运行的代码。如果全部失败,请使用try catch 来检测访问开启程序时发生的错误。

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

【讨论】:

  • 谢谢...try catch 是一个很好的解决方法...从来没想过!顺便说一句,我使用的是 ie9,尽管明确地说 frame[0].src = null,但不知何故打开器实际上并没有关闭。但是是的..try catch 似乎是封闭父母的一个很好的迹象。再次感谢!
猜你喜欢
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 2012-05-15
  • 2015-07-01
  • 2010-12-26
  • 1970-01-01
相关资源
最近更新 更多