1

ページに iframe があり、この iframe から親ページの機能にアクセスしたい。PC ブラウザでは、これを使用してうまく動作します。

parent.function()

問題はタブレット ブラウザにあります。関数にアクセスしようとすると、「未定義」が返され、親が見つからず、存在しないようです。しかし、この問題は Android 用の 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 に答える