0

可能重复:
是否可以从 iframe 中的 JS 调用父文档中的 Javascript 函数?

我有一个main.php页面。

这包含一个 iframe,它srcrandom.php.

我怎样才能在main.php带有随机函数的脚本中使用该函数?random()random.php

4

2 回答 2

1

如果您正在使用 HTML5,则可以使用该postMessage()功能..

这是一个不错的演示:

http://html5demos.com/postmessage

更新

这个想法是针对postMessageiframewindow对象,每个窗口都在监听消息事件,如下所示:

在你的 main.php 中:

window.addEventListener("message", function(e){
    var data = e.data; // data can be any object for example { type: 'random', payload: {}... }
    switch(data.type){
        case 'random':
            // do somthing here with the payload...
            break;
    }
});

在你的 iframe (random.php) 中:

window.parent.postMessage({ type: 'random', payload: {...} });
于 2012-10-22T16:31:09.517 回答
0

random您可以在包含iframeusing的页面中调用该函数window.parent.random()。如果你想做相反的事情,即从包含页面调用 ( i)中的函数,你应该使用。frame[DOM Reference to frame].contentWindow.random()

Mozilla Developer wiki 上的更多信息window.parent


如果在不同的域中,由于Same Origin Policyrandom.php,您不能这样做。如果是这种情况,您可以使用 HTML5跨页面传输信息*。但是,这不允许您直接调用不同域的 JavaScript 的函数。postMessage

* 请参阅我可以使用浏览器支持信息吗

于 2012-10-22T16:28:23.190 回答