1

我有一个 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函数添加参数不是一个可行的选择。

4

3 回答 3

1

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

top.someFunction.apply(window);

这两个窗口必须在同一个域中才能正常工作。

于 2012-10-16T13:16:38.920 回答
0

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

于 2012-10-16T13:10:15.770 回答
0

您是否尝试过以下方法:

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

// invoke function in win
win.getEvents();
于 2015-05-30T18:15:04.943 回答