前の記事では、ブラウザの相同戦略、つまり互いの方法と属性が互いのページにアクセスするのを防ぎ、相同戦略の十字架の問題に対する解決策の解決策を説明することについて説明しています:サブドメイン機関について説明します。 、jsonp、jsonp、cors。この記事では、HTML5ウィンドウを詳細に説明します。
HTML5 WINDOW.POSTMESSAGE APIHTML5 Window.PostMessageは、安全なイベントベースのメッセージAPIです。
ポストメサージメッセージを送信しますメッセージを送信するためにメッセージを送信する必要がある、ポストメッサージメソッドがソースウィンドウで呼び出されます。
ソースウィンドウソースウィンドウは、グローバルウィンドウオブジェクトまたは次のタイプのウィンドウにすることができます。
ドキュメントウィンドウのiframe:
var iframe = document.getElementById( 'my-iframe');
JavaScriptオープンポップアップウィンドウ:
var win = window.open();
現在のドキュメントウィンドウの父ウィンドウ:
var win = window.parent;
現在のドキュメントのウィンドウを開きます。
var win = window.opner();
ソースウィンドウオブジェクトを見つけた後、Postmessage APIを呼び出してターゲットウィンドウにメッセージを送信できます。
`` win.postmessage( 'hello'、 'ttp://jhssdemo.duapp.com/'); `` `` `` `` `` `` `
ポストメサージ関数は2つのパラメーターを受信します。1つ目は送信されるメッセージ、2つ目はソースウィンドウのソースです。
注:ターゲットウィンドウのソースが、ポストメッサージ関数で渡されたソースパラメーター値と一致している場合にのみ、メッセージを受信できます。
メサージ後のメッセージを受信しますPostMessageから前のソースウィンドウからメッセージを受信するには、ターゲットウィンドウにメッセージイベントを登録し、イベント監視機能をバインドして関数パラメーターでメッセージを取得する必要があります。
window.onload(){var text.getelementbyid( 'txt'){console.log(sage!); + e.origin); // console.log( + e.source); } if(window.addeventlistener){//ウィンドウのメッセージイベントを登録し、監視関数ウィンドウをバインドします。 ;}};メッセージイベント監視関数は、3つの属性があるパラメーター(イベントオブジェクトインスタンス)を受信します。
ソースウィンドウ
<! #cccccc;} </style> </head> <body> <button id = btn> open </button> <button id> send </button> <! jhssdemo.duapp.com/demo/h5_postmessage/win.html id = otherwin> </iframe> <br/> <br/> "<入力タイプ=ボタン値= child.comに送信= sendmessage/> <スクリプト> window.onload(){var btn = document.getElementByid = document.getElementById( 'send'); window.open( 'http://jhssdemo.duapp .com/h5_postmessage.html'、 'popup'):// jhssdemo {e){ // DATACORMENT.GETELEMENTBYID(OtherWin).ContentWindow .PostMersage(otherWin)D(メッセージ)、http://jhssdemo.duapp .com/);} sendbtn.onclight = function(e){sendit(e) ;}; </scrip> </body> </html>ターゲットウィンドウWin.html
<! ;} </style> </head> <body> <h1>新しいウィンドウ</h1> <div = txt> </div> <script> onload = function(){var text = document ( 'txt'); (norigin: + e.origin); innerhtml = <br> + <br> origin: + e.origin;}メッセージイベントと監視関数ウィンドウの場合「レビューこの記事の調査を通じて、私はポストメッサージAPIを使用してHTML5を使用してWindows間で通信することを学びました。 IE7-など、Window.Name、URLクエリ文字、ハッシュフラグメントなど、データを通信するための特定の選択肢があります。
上記は、この記事のすべての内容です。