【问题标题】:Access jQuery library from iframe从 iframe 访问 jQuery 库
【发布时间】:2011-03-30 03:41:47
【问题描述】:

我有一个使用 iframe 的旧版应用程序。 它在父页面中有一个 iframe,它会被其他页面动态替换。

JQuery 加载到父级中。是否有某种类型的插件可以让我访问从 iframe 页面加载到父级中的 jquery 核心,而不包括 jquery (language="JavaScript" src="../javascript/jquery.js") 在多个子 (iframe) 页面中?

例如,iframe 是静态的

<iframe name="mainWindow" src="includes/View.asp frameborder="0" />

我知道有更好的方法可以做到这一点,但我目前仍坚持使用这种架构。 有什么建议吗?

【问题讨论】:

  • 您无法使用父网页中的iframe 对象。浏览器不允许这样做(严重安全风险)。
  • @Blender 对于同域 iframe 和父级而言,情况并非如此。
  • 嗯,这很酷。我不知道你可以用&lt;iframe&gt;s 做到这一点。

标签: jquery iframe


【解决方案1】:

您可以尝试在 iframe 中运行它:

var $ = jQuery = window.parent.$;

假设父级和 iframe 在同一个域中。

刚刚测试过,例如:http://jsfiddle.net/qA7yE/

(该示例使用不同的代码 - 子 iframe 调用父级的 foo() 函数,但原理相同)

此外,为了安全起见,您可能想要这样做:

var $ = window.parent.$, jQuery = window.parent.jQuery;

【讨论】:

  • 谢谢大家试一试
  • 不能让它工作,我对 jquery 有点陌生。这就是我在 iframe
    foo
    并且 iframe 位于具有 jquery 核心的页面中。
  • 好的,页面是否在同一个域中?我会尝试一些更简单的方法,以确保它像window.parent.foo() 一样工作,然后检查控制台。
  • 这不适用于fancybox。我该如何解决这个问题?
  • 我不熟悉 Fancybox 及其工作原理。您应该发布一个单独的问题。
【解决方案2】:

无效,对象引用父级,而不是 iframe。在 iframe 中尝试一个简单的$('body').css('background','red');它适用于父级而不是 iframe。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多