如何使用jquery访问iFrame父页面?

Amr*_*rhy 262 javascript iframe jquery

我有一个iframe,为了访问父元素我实现了以下代码:

window.parent.document.getElementById('parentPrice').innerHTML
Run Code Online (Sandbox Code Playgroud)

如何使用jquery获得相同的结果?
更新:或者如何使用jquery访问iFrame父页面?

Pim*_*ger 483

要在iFrame的父级中查找,请使用:

$('#parentPrice', window.parent.document).html();
Run Code Online (Sandbox Code Playgroud)

$()包装器的第二个参数是要搜索的上下文.这默认为文档.

  • 你也可以这样做:$(window.parent.document).find("#parentPrice").html(); (21认同)
  • 很酷 - 在他感谢你之前,你承认了感谢.StackOverflow可能有时区问题吗? (18认同)
  • 好的,我可以帮忙. (3认同)
  • 这仅在iframe的源加载了jQuery时才有效.根据我的经验,iframe源代码不具备jQuery,但通常需要调用父代的jQuery函数之一.为此,请使用:window.document.$("#parentPrice").html()这是ÁlvaroG.Vicario发布的答案. (2认同)

bob*_*nce 38

如何使用jquery访问iFrame父页面

window.parent.document.

jQuery是一个基于JavaScript的库,而不是它的完全替代品.您不必使用涉及$的内容替换每个最后的JavaScript表达式.

  • +1.jQuery很棒,但很多简单问题的答案似乎都是"使用jQuery".如果您正在加载库,那很好,但不要加载它一项任务.此外,人们似乎关注JS perf,然后在JS之上使用API​​,以便在没有API的情况下轻松地(并且可能更快)做事. (6认同)
  • @Blowski:那是我的噩梦!jQuery包含许多极其复杂和脆弱的"我的意思"代码,这些代码完全不适合放入官方API. (3认同)
  • OP已经有了window.parent.document,所以这没有回答任何问题.并且假设选择器逻辑比元素的ID复杂得多,jQuery非常方便.我觉得问题是"我怎么用法语说'你好'?" 这个答案是"说德语". (2认同)

Álv*_*lez 12

如果需要在父文档中找到jQuery实例(例如,调用插件提供的实用程序函数),请使用以下语法之一:

  • window.parent.$
  • window.parent.jQuery

例:

window.parent.$.modal.close();
Run Code Online (Sandbox Code Playgroud)

jQuery附加到window对象,这是什么window.parent.


Amr*_*Amr 9

您可以使用以下方式从iframe中访问父窗口的元素window.parent:

// using jquery    
window.parent.$("#element_id");
Run Code Online (Sandbox Code Playgroud)

这与以下相同:

// pure javascript
window.parent.document.getElementById("element_id");
Run Code Online (Sandbox Code Playgroud)

如果您有多个嵌套的iframe并且想要访问最顶层的iframe,那么您可以window.top像这样使用:

// using jquery
window.top.$("#element_id");
Run Code Online (Sandbox Code Playgroud)

这与以下相同:

// pure javascript
window.top.document.getElementById("element_id");
Run Code Online (Sandbox Code Playgroud)


小智 7

在父窗口放:

<script>
function ifDoneChildFrame(val)
{
   $('#parentPrice').html(val);
}
</script>
Run Code Online (Sandbox Code Playgroud)

并在iframe src文件中放置:

<script>window.parent.ifDoneChildFrame('Your value here');</script>
Run Code Online (Sandbox Code Playgroud)


小智 5

是的,它也对我有用。

注意:我们需要使用window.parent.document

    $("button", window.parent.document).click(function()
    {
        alert("Functionality defined by def");
    });
Run Code Online (Sandbox Code Playgroud)


小智 5

这对我来说很有用.在我的情况下,我必须填充从POPUP JS到PARENT WINDOW表单的值.

所以我用过 $('#ee_id',window.opener.document).val(eeID);

优秀!!!