4

ウィンドウ間の通信にクロスドメインの制限が課されていること、およびHTML5でpostMessageが導入されていることは認識しています。

ただし、iFrame がその親ウィンドウで定義された JavaScript 関数を呼び出すことができる他の方法があるかどうか疑問に思っています。

postMessageは、それぞれが複数のパラメーターを必要とする複数のメソッドを呼び出すには少し扱いに​​くいと思います。

HTML5 の代替案が存在しない場合は、PhoneGap でソリューションを提供するためのボーナス ポイントです。

PhoneGap の詳細はこちら:

PhoneGap の「index.html」ページに iFrame を埋め込みます。

「index.html」から、JavaScript 関数を呼び出したり、iFrame 内の変数にアクセスしたりできます。

しかし、iFrame から「index.html」内の関数を呼び出したり、変数にアクセスしたりすることはできません。

これが逆に機能するのを防ぐPhoneGapについて何かありますか?

ありがとう!

4

2 に答える 2

4

postMessage に代わるものは、URL ハッシュタグの変更です。JSON メッセージでより複雑なメッセージをエンコードし、テキストをエンコード/デコードすることは難しくありません。

{"メソッド名": ['a', 'b', 3]}

: #%7B%22methodName%22%3A%20%5B'a'%2C%20'b'%2C%203%5D%7D

反対側にハッシュの変更を監視してメッセージを処理するスクリプトがある場合は、問題ありません。

postMessage をサポートするブラウザーでは、同じトリックが問題なく機能することに注意してください。これを行う一般的な方法は、postMessage を使用してハッシュ変更にフォールバックすることです。

于 2012-01-12T22:24:18.820 に答える
0

parent.funcitonName(args);私にとってはうまくいきます。クロスドメインの問題があるかどうかはわかりませんが、すべての iFrame コードを 1 つのドメインで実行しています。

于 2012-01-12T21:27:04.637 に答える