我有一个iframe,为了访问父元素,我实现了以下代码:
window.parent.document.getElementById('parentPrice').innerHTML
如何使用jQuery获得相同的结果?
更新: 或者如何使用jQuery访问iFrame的父页面?
我有一个iframe,为了访问父元素,我实现了以下代码:
window.parent.document.getElementById('parentPrice').innerHTML
如何使用jQuery获得相同的结果?
更新: 或者如何使用jQuery访问iFrame的父页面?
要在 iFrame 的父级元素中查找,请使用:
$('#parentPrice', window.parent.document).html();
$()包装器的第二个参数是要搜索的上下文。默认为document。
$("#someDiv", top.document)
是什么意思? - Gabriel Nahmias如何使用 jQuery 访问 iFrame 的父页面
window.parent.document.
jQuery 是 JavaScript 的一个库,不是完全替代它。您不必用$来替换每一个JavaScript表达式。
如果您需要在父文档中找到 jQuery 实例(例如,调用插件提供的实用函数),请使用以下语法之一:
window.parent.$
window.parent.jQuery
示例:
window.parent.$.modal.close();
jQuery会附加到window
对象上,这就是window.parent
的含义。
您可以通过使用 window.parent
从 iframe 内访问父窗口的元素,如下所示:
// using jquery
window.parent.$("#element_id");
这与以下内容相同:
// pure javascript
window.parent.document.getElementById("element_id");
如果您有多个嵌套的iframe,并且想要访问最顶层的iframe,则可以像这样使用window.top
:
// using jquery
window.top.$("#element_id");
这与以下内容相同:
// pure javascript
window.top.document.getElementById("element_id");
<script>
function ifDoneChildFrame(val)
{
$('#parentPrice').html(val);
}
</script>
<script>window.parent.ifDoneChildFrame('Your value here');</script>
我也成功了。
注意:我们需要使用window.parent.document。
$("button", window.parent.document).click(function()
{
alert("Functionality defined by def");
});
对我来说它很有效,只需做出小调整即可。在我的情况下,我需要将弹出窗口JS的值填充到父级窗口表单中。
因此,我使用了$('#ee_id',window.opener.document).val(eeID);
太棒了!
有多种方法可以实现这些。
I)直接获取主要的父级。
例如,我想将我的子页面替换为 iframe,则可以:
var link = '<%=Page.ResolveUrl("~/Home/SubscribeReport")%>';
top.location.replace(link);
这里 top.location 直接获取父级。
II) 逐级获取父级。
var element = $('.iframe:visible', window.parent.document);
如果有多个iframe,则需要指定活动或可见的iframe。
您还可以使用以下方法获取更多父级元素:
var masterParent = element.parent().parent().parent()
var myWindow = window.top.$("#Identifier")