在iframe中调用父函数而不使用parent.someFunction()?

时间:2013-08-08 18:50:11

标签: javascript

这可能吗?

函数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中有一个表示层,它有一个内容调用一个metric api函数来向服务器发送一个度量。 iframe位于父窗口中。之前开发的内容(演示文稿)不使用parent.SomeAPIMethod()调用。如何拦截来自父层的api调用?如何在不更改内容中的所有度量标准调用的情况下执行此操作吗?

1 个答案:

答案 0 :(得分:0)

您可以使用框架或iframe:

  1. window.parent.someFunction(参数)在一个窗口中调用一个函数 水平。
  2. window.top.someFunction(参数)调用函数的最大值 级别窗口。换句话说,就是所有的容器窗口。
  3. 例如,这是窗口容器中的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>
    

    希望有所帮助。