iframe中的函数()?

时间:2012-10-22 16:26:32

标签: javascript function iframe

  

可能重复:
  Is it possible to call Javascript function in parent document from JS in iframe?

我有一个main.php页。

这包含srcrandom.php的iframe。

如何使用随机函数main.phprandom()中添加脚本,让random.php使用该函数?

2 个答案:

答案 0 :(得分:1)

如果您使用的是HTML5,则可以使用postMessage()功能..

这是一个很好的演示:

http://html5demos.com/postmessage

<强>更新

想法是postMessage到iframe window对象,每个窗口都是这样监听消息事件:

在你的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: {...} });

答案 1 :(得分:0)

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

More information about window.parent at the Mozilla Developer wiki

<小时/> 如果random.php位于其他域,则由于Same Origin Policy而无法执行此操作。如果是这种情况,您可以使用HTML5 postMessage跨页面传输信息*。但是,这不允许您直接调用其他域的JavaScript函数。

*有关浏览器支持信息,请参阅Can I use