0

这可能吗?

该函数someMethod是父窗口的成员。

iframe 内容:

<a href="" onclick="Something.call('someMethod', 'Some data'); ">Send some data</a>

任何方式都可以打电话someMethod而不做......

<a href="" onclick="parent.Something.call('someMethod', 'Some data'); ">Send some data</a>

更新:

基本上,我在 iframe 中有一个表示层,该层具有调用度量 api 函数以将度量发送到服务器的内容。iframe 在父窗口中。内容(演示)以前是在没有使用 parent.SomeAPIMethod() 调用的情况下开发的。如何拦截来自父层的 api 调用?有什么方法可以在不更改内容中所有指标调用的情况下做到这一点?

4

1 回答 1

0

您可以在框架或 iframe 中使用:

  1. window.parent.someFunction(parameters)在窗口上一层调用函数。
  2. window.top.someFunction(parameters)调用函数的最大级别窗口。换句话说,所有的容器窗口。

例如,这是窗口容器中的 JavaScript:

function someFunction(msg) {
    alert(msg +"!!!");
}

在框架或 iframe 中,您可以使用按钮:

<button onclick="window.top.someFunction('message');">Trigger function</button>

但是,如果您想使用“别名”,则可以使用以下 JavaScript:

var aliasFn = window.top.someFunction;

之后,当你想使用它时:

<button onclick="aliasFn('message');">Trigger function</button>

希望有帮助。

于 2013-08-09T00:45:02.690 回答