【发布时间】:2010-11-09 09:59:54
【问题描述】:
如何从父页面调用 iframe 中的函数?
【问题讨论】:
标签: jquery
如何从父页面调用 iframe 中的函数?
【问题讨论】:
标签: jquery
只要框架页面位于同一域(或子域,并且您正在设置 document.domain),您就需要访问框架元素的 contentWindow 属性.例如:
$("#myFrame")[0].contentWindow.myFunction();
// or, if jQuery hasn't made you lazy
document.getElementById("myFrame").contentWindow.myFunction();
大多数浏览器也支持 contentDocument,但 Internet Explorer 不支持。如果您的框架页面位于不同的域中,那么您将收到拒绝访问错误。
【讨论】:
if(document.getElementById("myFrame").length==0){ document.getElementById("myFrame").contentWindow.myFunction(); };
#myFrame,两个版本都会抛出相同的错误。
$("#myFrame")[0] 返回undefined,当然没有方法。我在想$("#myFrame")...,但这不是它的工作原理。感谢您让我走上正确的道路。
$("iframe").each(function()
{
$(this).one("load", function()
{
$(this)[0].contentWindow.myFunction();
});
});
需要加载 iframe ;)
【讨论】:
像专业人士一样做:
$("#myFrame").prop('contentWindow').abc();
【讨论】:
你试过了吗?
top.frames['my_frame'].myFunc();
【讨论】:
您可以使用 iFrame 的 id 选择 iFrame
document.getElementById(iframeId).contentDocument
但我不确定你是否可以访问它的 JavaScript, 特别是如果子 iFrame 来自不同的域
【讨论】: