Javascript 函数()超出iframe?

Javascript 函数()超出iframe?,javascript,function,iframe,Javascript,Function,Iframe,可能重复: 我有一个main.php页面 这包含一个iframe,它src是random.php 如何在main.php中使用带有随机函数的脚本,random(),并让random.php使用该函数?您可以在包含iframe的页面中使用window.parent.random()调用函数random。如果要执行相反的操作,即从包含页调用(i)frame中的函数,则应使用[DOM引用frame].contentWindow.random() ↪ 如果random.php位于不同的域中,则无法

可能重复:

我有一个
main.php
页面

这包含一个iframe,它
src
random.php


如何在
main.php
中使用带有随机函数的脚本,
random()
,并让
random.php
使用该函数?

您可以在包含
iframe
的页面中使用
window.parent.random()
调用函数
random
。如果要执行相反的操作,即从包含页调用(
i
frame
中的函数,则应使用
[DOM引用frame].contentWindow.random()


如果
random.php
位于不同的域中,则无法执行此操作,因为存在错误。如果是这样,您可以使用HTML5跨页面传输信息*。但是,这不允许您直接调用其他域的JavaScript函数


*有关浏览器支持信息,请参见。如果您使用的是HTML5,则可以使用
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: {...} });