如何从父页面调用iframe中的函数?

时间:2010-11-09 09:59:55

标签: jquery

如何从父页面调用iframe中的函数?

5 个答案:

答案 0 :(得分:14)

只要框架页面位于同一个域(或在子域上,并且您正在设置document.domain),您需要访问框架元素的 contentWindow 属性。例如:

$("#myFrame")[0].contentWindow.myFunction();

// or, if jQuery hasn't made you lazy 
document.getElementById("myFrame").contentWindow.myFunction();

大多数浏览器也支持 contentDocument ,但Internet Explorer不支持。如果您的框架页面位于不同的域上,那么您将收到“拒绝访问”错误。

答案 1 :(得分:3)

$("iframe").each(function()
{
    $(this).one("load", function()
    {
        $(this)[0].contentWindow.myFunction();
    });
});

有必要加载iframe;)

答案 2 :(得分:2)

像专业人士一样:

$("#myFrame").prop('contentWindow').abc();

答案 3 :(得分:0)

你尝试过吗?

top.frames['my_frame'].myFunc();

答案 4 :(得分:0)

您可以使用其ID

选择iFrame
document.getElementById(iframeId).contentDocument

但我不确定您是否可以访问其JavaScript, 特别是如果子iFrame来自不同的域