在IFrame窗口中调用JS函数

时间:2012-10-16 13:07:58

标签: javascript function iframe

我有一个JS函数,我有时想在主窗口的上下文中调用它,有时候在客户端窗口中调用它。如下所示:

var f = function() { alert(window.location); };

f(); // should show the location of the parent frame

// DOESN'T WORK, but is intended to show the location of the first IFrame
f.call(window.frames[0]);

谷歌搜索这主要是告诉我如何在子框架中调用定义的函数。但是,我想要一个在父框架中定义的函数,并在子框架中执行它。并且,为了消除这一点,在函数中添加window参数不是一个可行的选择。

3 个答案:

答案 0 :(得分:1)

如果要执行在父窗口中定义但在窗口上下文中定义的函数,可以使用apply

top.someFunction.apply(window);

这两个窗口必须位于同一个域中才能生效。

答案 1 :(得分:0)

如果您正在调用父页面的全局范围内存在的函数,请将window替换为top

答案 2 :(得分:0)

您是否尝试过以下内容:

// reference to window in iframe with id or name 'myIframe'
var win = window.frames['myIframe'];

// invoke function in win
win.getEvents();