【问题标题】:$(body) inside an iframe$(body) 在 iframe 中
【发布时间】:2011-08-09 14:22:37
【问题描述】:

假设我有一个 iframe 页面 (iframe.html)。在此页面内,我有一个脚本 $(正文)或$(文档)。现在我想了解它代表什么?

它是指 iframe 正文还是主页正文?如果它代表主页面,我如何让它引用 iframe ?

【问题讨论】:

  • 这对你自己来说是微不足道的。
  • 你的意思是 $(document.body)... 或更好:$('body')... 只是 $(body) 不起作用(除非您明确定义一个具有该名称的变量并将 document.body 放入其中) .

标签: javascript jquery dom iframe


【解决方案1】:

要查找带有iframe 的元素,试试这个

$("iframeSelector").contents().find("#element_in_iframe").click(function(e){ 
   alert(1); 
 });

【讨论】:

  • @Diana - 我认为这就是您可能正在寻找的东西。 +1
【解决方案2】:

$('body')document指的是iframe自己的文档。

  • 在封装页面中,使用this 访问带有jQuery 选择器的iframe 内容。

  • iframe内,window.parent可参考封装页面。

【讨论】:

    【解决方案3】:

    如果您在 iframe 内:

    $(body)$(document) 将引用 iframe 中包含的文档,并且通常不知道父页面。

    如果您需要从 iframe 中访问外部页面:

    如有必要,您可以使用window.parent 访问包含 iframe 的页面。

    【讨论】:

    • 我在问这个,因为以下代码不起作用; $("#element_in_iframe").click(function(e){ alert(1); });
    • 为此工作 - 您需要在 iframe 中包含的页面内连接该事件。因此,如果您在“iframe 页面”的加载中创建了该事件,它应该可以毫无问题地触发。
    • @Diana IFRAME 中的页面有 jQuery 吗?
    • @Diana:它们是两个独立的文件。
    【解决方案4】:

    它指的是 IFRAME 中的主体。 jQuery 将始终在当前(第一个父)文档的上下文中工作。如果你想指定一个不同的上下文,那就是当你使用 jquery 的上下文参数时。

    http://api.jquery.com/jQuery/#jQuery1

    jQuery( 选择器, [上下文] ) 选择器:包含选择器表达式的字符串 context:用作上下文的 DOM 元素、文档或 jQuery

    所以$('body') 指的是您的 IFRAME 中的文档,并且可以被认为是隐式执行:$('body', document); 要获取父框架的文档,您必须执行类似 $('body', parent.document); 的操作。这当然会受到跨框架限制,具体取决于您如何执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      相关资源
      最近更新 更多