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