ドメイン間ソリューションを知らないかもしれません
2627 ワード
ドメイン間ソリューションを知らないかもしれません
2013-11-18 19:34 by Justany_WhiteSnow,290阅读,0评论,コレクション,編集
ブラウザの同源ポリシーのため、ブラウザがドメインを越えているという問題によく遭遇します.
簡単に言えば、ドメイン間の基本的な解決策は次のとおりです. GETリクエスト用JSONP その他の要求は同源iframeをエージェントとする JSONPの紹介が多いので、ここではあまり話さない.
同源iframeがエージェントをするのは主にメインウィンドウとiframeの通信問題であり、ここにも同源戦略があるからだ.よくある方法はwindowを使うことです.nameまたはurl paramを介して通信します.しかし、これらの方法はiframeを繰り返しロードして完成する必要があります.資源の消費が高いので、もっと良い案はありませんか.
window.postMessage
window.PostMessageは最初にIE 8から導入され、主にドキュメント間通信の問題を解決するために、以下のリストをサポートします.
Feature
Chrome
Firefox (Gecko)
Internet Explorer
Opera
Safari (WebKit)
Basic support
1.0
6.0 (6.0) [1] [4]
8.0 [2] [3]
9.5
4.0
?
20.0 (20.0)
Not supported
?
?
他のウィンドウ:ターゲットウィンドウ、windowです.framesプロパティのメンバーまたはwindow.Openメソッド作成ウィンドウ message:String、Object(IE 8、9はサポートされていません) のタイプのメッセージを送信します. targetOrigin:メッセージ受信範囲を限定し、制限なしに「*」 を使用してください.
メッセージイベント
ウィンドウのmessageイベントをバインドして、次のような情報を取得します.
非同源ドキュメント間の通信
これにより、非同源ドキュメント間の通信スキームが提供されます.ここには簡単な例があります.
http://html5demos.com/postmessage2
シナリオの基本原理
基本原理は今では明らかになっていますが、私たちは依然として同源iframeをエージェントとして使用していますが、ホームページとiframeの通信方式はpostMessageを利用して実現されています.
既成案
IE 8以上のブラウザユーザーのみにサービスを提供している場合(海外プロジェクトでは基本的にIE 6、7が淘汰されています)、これらの互換性の問題を処理したくない場合は、次のような既存のソリューションを選択できます.
https://github.com/jpillora/xdomain
分類:
Javascript
ラベル:
Javascript ,
HTML5
2013-11-18 19:34 by Justany_WhiteSnow,290阅读,0评论,コレクション,編集
ブラウザの同源ポリシーのため、ブラウザがドメインを越えているという問題によく遭遇します.
簡単に言えば、ドメイン間の基本的な解決策は次のとおりです.
同源iframeがエージェントをするのは主にメインウィンドウとiframeの通信問題であり、ここにも同源戦略があるからだ.よくある方法はwindowを使うことです.nameまたはurl paramを介して通信します.しかし、これらの方法はiframeを繰り返しロードして完成する必要があります.資源の消費が高いので、もっと良い案はありませんか.
window.postMessage
window.PostMessageは最初にIE 8から導入され、主にドキュメント間通信の問題を解決するために、以下のリストをサポートします.
Feature
Chrome
Firefox (Gecko)
Internet Explorer
Opera
Safari (WebKit)
Basic support
1.0
6.0 (6.0) [1] [4]
8.0 [2] [3]
9.5
4.0
transfer
argument ?
20.0 (20.0)
Not supported
?
?
otherWindow.postMessage(message, targetOrigin, [transfer]);
他のウィンドウ:ターゲットウィンドウ、windowです.framesプロパティのメンバーまたはwindow.Openメソッド作成ウィンドウ
メッセージイベント
ウィンドウのmessageイベントをバインドして、次のような情報を取得します.
window.addEventListener('message', function (event) {
console.log(event.data);
}, false);
非同源ドキュメント間の通信
これにより、非同源ドキュメント間の通信スキームが提供されます.ここには簡単な例があります.
http://html5demos.com/postmessage2
シナリオの基本原理
基本原理は今では明らかになっていますが、私たちは依然として同源iframeをエージェントとして使用していますが、ホームページとiframeの通信方式はpostMessageを利用して実現されています.
既成案
IE 8以上のブラウザユーザーのみにサービスを提供している場合(海外プロジェクトでは基本的にIE 6、7が淘汰されています)、これらの互換性の問題を処理したくない場合は、次のような既存のソリューションを選択できます.
https://github.com/jpillora/xdomain
分類:
Javascript
ラベル:
Javascript ,
HTML5