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
发送到iframewindow
对象,每个窗口都在侦听消息事件,如下所示:
在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: {...} });