1

我在页面上有一个 iframe,我想从此 iframe 访问父页面的功能。在 PC 浏览器中使用这个可以很好地工作:

parent.function()

问题出在平板电脑浏览器中,当我尝试访问该函数时,它返回“未定义”并且找不到父级,就像不存在一样。但是这个问题在安卓的 Firefox 浏览器中不会发生,它是唯一在平板电脑上运行良好的浏览器。

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

谢谢!

4

1 回答 1

0

如果浏览器是 html5,请尝试使用 html5 通信方法: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

于 2012-12-21T11:21:07.137 回答