在驻留在iframe中的.js文件中调用javascript函数

时间:2010-07-28 07:25:04

标签: javascript iframe

我有一个default.aspx页面,其中包含一个iframe,其源代码设置为default.htm页面。 default.htm又有一个指向脚本文件()的链接。是否可以在我的default.aspx页面中访问脚本文件中的函数?如果是这样的话?

2 个答案:

答案 0 :(得分:1)

是的,如果iframe中的页面是从与包含iframe的页面相同的域加载的(这是同源策略)。

请注意,iframe和包含页面都有一个全局“窗口”对象,但它们是不同的。

要从外部页面的内部框架中的脚本访问变量和函数,您需要能够将iframe作为对象引用。例如,如果它是页面上唯一的iframe,您可以将window.frames[0].添加到任何变量名称,并且您将引用iframe中脚本声明的名称。如果不是,那么您可能必须使用ID找到iframe:

var iframewindow = document.getElementById('myframe').contentWindow;
// read the content of the 'myvar' variable which was set within that frame.
alert(iframewindow.myvar);

要从内部页面访问外部页面的变量和函数,您需要将window.parent.添加到它们的开头。

答案 1 :(得分:0)

假设default.htm与default.aspx在同一个域中, 您可以使用以下javascript来调用default.htm中的函数:

var myIframe = document.getElementById("iframe_id").contentWindow;
myIframe.func1();
myIframe.func2();
myIframe.func3();
相关问题