postMessage については、HTML5 の機能ですが、IE8 以降をサポートしています。Web サイトが IE6 および IE7 をサポートする必要がない場合は、window.postMessage を使用できます。ドメイン間または同じドメイン内で転送できます。
私は単純なアプリケーションシナリオを示しているだけです。もちろん、この機能はさまざまな場所で使用できます。
ページがあり、そのページでユーザー情報を取得する場合は、クリックして別のページに入ります。デフォルトでは、ユーザー情報の一部を window.postMessage を通じてこのページに渡すことができます。 (もちろん、セキュリティなどの側面を考慮する必要があります。)
コード例
メッセージの送信:
JavaScriptコードの内容をクリップボードにコピーします
//弹出一个新窗口 var domain = 'https://haorooms.com'; var myPopup = window.open(domain + '/windowPostMessageListener.html','myWindow'); //周期性的发送消息 setTimeout(function(){ //var message = '当前时间是 ' + (new Date().getTime()); var message = {name:"站点",sex:"男"}; //你在这里也可以传递一些数据,obj等 console.log('传递的数据是 ' + message); myPopup.postMessage(message,domain); },1000);
遅延させるには、通常、タイマーsetTimeoutを使用して送信前に遅延させます。
承認されたページ
JavaScript コードはコンテンツをクリップボードにコピーします
//メッセージのフィードバックを聞く
window.addEventListener('message',function(event) { if(event.origin !== 'https://haorooms.com') return; //这个判断一下是不是我这个域名跳转过来的 console.log('received response: ',event.data); },false);
以下に示すように、承認されたページはデータを取得します
iframe を使用する場合、コードは次のように記述する必要があります:
JavaScript コード コンテンツをクリップボードにコピー
//捕获iframe var domain = 'https://haorooms.com'; var iframe = document.getElementById('myIFrame').contentWindow; //发送消息 setTimeout(function(){ //var message = '当前时间是 ' + (new Date().getTime()); var message = {name:"站点",sex:"男"}; //你在这里也可以传递一些数据,obj等 console.log('传递的数据是: ' + message); //send the message and target URI iframe.postMessage(message,domain); },1000);
データを受け入れる
コンテンツをクリップボードにコピーする JavaScript コード
//响应事件 window.addEventListener('message',function(event) { if(event.origin !== 'https://haorooms.com') return; console.log('message received: ' + event.data,event); event.source.postMessage('holla back youngin!',event.origin); },false);
上記のコード スニペットは、メッセージ ソースに情報をフィードバックし、メッセージが受信されたことを確認します。以下はいくつかの重要なイベント属性です:
source – メッセージ ソース、メッセージ送信ウィンドウ/iframe。
origin – データ ソースの検証に使用されるメッセージ ソースの URI (プロトコル、ドメイン名、ポートが含まれる場合があります)。
data – 送信者から受信者に送信されるデータ。
インスタンスを呼び出す
メインスレッドでWorkerインスタンスを作成し、onmessageイベントをリッスンする
JavaScriptコードがコンテンツをクリップボードにコピーする
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Test Web worker</title> <script type="text/JavaScript"> function init(){ var worker = new Worker('compute.js'); //event 参数中有 data 属性,就是子线程中返回的结果数据 worker.onmessage= function (event) { // 把子线程返回的结果添加到 p 上 document.getElementById("result").innerHTML += event.data+"<br/>"; }; } </script> </head> <body onload="init()"> <p id="result"></p> </body> </html>
クライアントのcompute.jsでは、次の単純な繰り返しですsum 操作を複数回実行し、最後に結果が postMessage メソッドを通じてメイン スレッドに返されます。その目的は、一定期間待機することです。この期間中、メイン スレッドがブロックされることはありません。ユーザーはブラウザをドラッグしたり、ブラウザ ウィンドウを拡大または縮小したりして、この現象をテストできます。このノンブロッキング メイン スレッドの結果が、Web ワーカーが達成したいことです。
Compute.js は postMessage メソッドを呼び出して計算結果を返します
JavaScript コードはコンテンツをクリップボードにコピーします
var i=0; function timedCount(){ for(var j=0,sum=0;j<100;j++){ for(var i=0;i<100000000;i++){ sum+=i; } } // 调用 postMessage 向主线程发送消息 postMessage(sum); } postMessage("Before computing,"+new Date()); timedCount(); postMessage("After computing,"+new Date());
これらの事例を読んだ後は、このメソッドを習得したと思います。さらに興味深い情報については、注目してください。 php 中国語 Web サイトの他の関連記事へ!
関連書籍:
以上がH5 の postMessage API の詳細なグラフィックとテキストの説明 詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Theroottaginanhtmldocumentis.itservesStop-levellementThateChationCothercontent、ProperDocumentsTurcuteRuctureAndBrowsingを保証します。

この記事では、HTMLタグは要素を定義するために使用される構文マーカーであり、要素はタグやコンテンツを含む完全なユニットであると説明しています。彼らは協力してWebPages.Characterカウントを構築するために協力します:159

この記事では、&lt; head&gt;の役割について説明します。および&lt; body&gt; HTMLのタグ、ユーザーエクスペリエンスへの影響、およびSEOの影響。適切な構造化により、ウェブサイトの機能と検索エンジンの最適化が強化されます。

この記事では、HTMLタグの違いについて説明します。、、、、、、、およびプレゼンテーションの使用とSEOとアクセシビリティへの影響に焦点を当てています。

記事では、UTF-8に焦点を当てたHTMLでのキャラクターエンコーディングの指定について説明します。主な問題:テキストの正しい表示を確保し、文字化けされたキャラクターの防止、SEOとアクセシビリティの強化。

この記事では、Webコンテンツの構築とスタイリングに使用されるさまざまなHTMLフォーマットタグについて説明し、テキストの外観に対する影響とアクセシビリティとSEOのセマンティックタグの重要性を強調しています。

この記事では、HTMLの「ID」属性と「クラス」属性の違いについて説明し、一意性、目的、CSS構文、および特異性に焦点を当てています。それらがWebページのスタイリングと機能にどのように影響するかを説明し、のベストプラクティスを提供する

この記事では、スタイリングとJavaScriptの操作の要素をグループ化するHTML「クラス」属性の役割を説明し、一意の「ID」属性とは対照的です。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









