无法从iframe访问浏览器平板电脑(Firefox除外)中的父javascript

时间:2012-12-21 10:48:42

标签: javascript android tablet

我在页面上有一个iframe,我想从这个iframe访问父页面的功能。 在PC浏览器中运行良好:

parent.function()

问题出现在平板电脑浏览器中,当我尝试访问该功能时,它会返回未定义的'并且它没有找到父母,它就像不存在一样。但这个问题不会发生在Android的Firefox浏览器中,它是唯一适用于平板电脑的浏览器。

PD:两个页面(父页面和iframe)都位于同一个域中。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果浏览器是html5,请尝试使用html5 comunication方法:postMessage。 postMesseage允许跨域通信。

//parent code
window.addEventListener("message",function(msg){
    msg.data;
    //... do something
}, false);

//iframe code
parent.postMessage("hi daddy");

使用JSON.parse(...)和JSON.stringify(...)可以发送如下对象:

{
    command: "methodName",
    arguments:[100, 200, "my string"]
}

父窗口应该解释iframe发送的命令。因此,您可以为iframe提供一个小型API实现。

https://developer.mozilla.org/en-US/docs/DOM/window.postMessage