【问题标题】:HTML frames interaction & Javascript: Firefox issueHTML 框架交互和 Javascript:Firefox 问题
【发布时间】:2011-03-09 00:40:23
【问题描述】:

这个问题有点奇怪,而且只发生在 Firefox(3.6.6 版以及 3.6 的旧版本中)。解释它的最好方法是描述场景,所以..这里是:

  1. 我有两个 HTML 页面:Page-A 和 Page-B。 Page-A 包含一个 iframe 元素,其源指向 Page-B。
  2. Page-B 包含一个 JavaScript 函数:foo。 在本示例中,此函数仅弹出警报。
  3. 第一次加载 Page-A 时,我可以获取 iframe 并执行

JavaScript 函数如下:

window.frames["frameName"].foo();

到目前为止看起来很正常。但是,当我从 Page-A 动态删除 iframe,然后将其动态添加到页面时,会发生这种情况:

** 我可以得到 iframe 的实例:window.frames["frameName"]

** 当我尝试执行 foo() 函数时,我得到一个未定义的错误。

此问题仅在 Firefox 中发生。 测试:IE 7/8、Chrome 和 Safari - 工作正常。

知道为什么会这样吗? 知道如何解决这个问题吗?

【问题讨论】:

  • 你能显示一些代码吗?你在哪里动态添加它?

标签: javascript html firefox iframe


【解决方案1】:

尝试使用window.frames["frameName"].contentWindow.foo();访问它

【讨论】:

  • 使用 contentWindow 不会暴露 JavaScript 代码,所以它并不是在所有浏览器中都有效。
  • 确实如此。我猜还有其他事情发生。您应该向我们展示添加和删除框架的代码。
  • 好的,所以我部分收回。为了使它在所有浏览器中正常工作,我需要这样称呼它: document.getElementById("frameName").contentWindow.foo();使用 window.frames 调用,在 Firefox 中根本不起作用。谢谢:)
猜你喜欢
  • 2019-12-10
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 2011-05-24
相关资源
最近更新 更多