iframe クロスドメイン通信
ご存知のとおり、クロスドメイン アクセスに関してフロントエンド JavaScript によって課されるセキュリティ制限により、JavaScript はそれを含むドキュメントと同じドメイン内のコンテンツにのみアクセスできます。
使用例:
要件は、iframe を介して http://www.demo.org/top.html に http://www.iframe.com/iframe.html を埋め込むことです。 iframeページで、ボタンをクリックしてトップページのjsメソッドを呼び出したいとします。
1. 内部ページで使用するメソッドをトップページに作成します
2. iframeをhttp://www.demo.org/top.html
に埋め込みます。3. www.demo.org ドメイン http://www.demo.org/proxy.html でクロスドメイン通信用のプロキシ ページを作成します
4. http://www.demo.org/proxy.html
にプロキシ ページのロジックを追加します。
5. http://www.iframe.com/iframe.html ページで、js を使用してプロキシ ページのアドレスを設定します。
http://www.iframe.com/iframe.html の TopProxy.call を通じて http://www.demo.org/top.html に直接アクセスします。 などの のメソッド
KISSY.use('topproxy', function(S, TopProxy){ TopProxy.call('testFun', '这是一个真实的故事'); });
呼び出しメソッドの最初のパラメータは、「.」をサポートする外部 Web ページのグローバル メソッド名です。後続のパラメータは無制限で、すべてターゲット メソッドに渡されます。
注:
2. TopProxyConfig が設定されていない場合、参照される iframe と親 iframe は同じドメイン (大きなドメイン) にあるとみなされ、最上位のオブジェクトが直接呼び出されます。
3. IE678 では、システムメソッドが apply をサポートしていないため、先頭でシステムメソッドを直接呼び出すとエラーが報告される場合があります。