検索
ホームページウェブフロントエンドH5 チュートリアルHTML5 の実践とクロスドキュメントメッセージング (iframe メッセージング) の分析

異なるドメイン名のページ間でメッセージを送信することは、一般的にクロスドキュメントメッセージング、略して XDM と呼ばれます。たとえば、ドメイン www.leemagnum.com のページは、インライン フレーム内にあるドメイン名 http://www.php.cn/ のページと通信します。 XDM メカニズムが登場する前は、この種の通信をストレスなく実装するには長い時間がかかりました。 XDM はこのメカニズムを標準化し、ドキュメント間の通信を安全かつ簡単に実現できるようにします。

XDMの中核はpostMessage()メソッドです。 XDM の場合、「別の場所」とは、現在のページに含まれる iframe タグ、または現在のページにポップアップ表示されるウィンドウを指します。

postMessage() メソッドは、メッセージと、メッセージの受け入れ元のドメイン名を示す文字列の 2 つのパラメーターを受け取ります。 2 番目のパラメータは、安全な通信を確保し、ブラウザが安全でない場所にメッセージを送信するのを防ぐために非常に重要です。小さな例は次のとおりです

HTMLコード

<iframe id="iframe" src="http://blog.csdn.net/lee_magnum" frameborder="0"></iframe>

JavaScriptコード

//获取框架中的window
var iframeWin = document.getElementById("iframe").contentWindow;
alert(iframeWin) // [object window]

//向框架中发送消息
iframeWin.postMessage("一个消息", "http://blog.csdn.net/lee_magnum")

JavaScriptコードのコードの最後の行は、インラインフレームにメッセージを送信して定式化しようとしますフレーム内のドキュメントは「http://www.php.cn/」ドメインから発信されている必要があります。ソースが一致する場合、メッセージは iframe に配信されます。一致しない場合、postMessage() は何も行いません。この制限により、状況によってはウィンドウ内の位置が変更されなくなります。 postMessage() に渡される 2 番目のパラメータが「*」の場合、メッセージはどのドメインからでもドキュメントに送信できることを意味します。

XDM メッセージを受信すると、ウィンドウ オブジェクトのメッセージ イベントがトリガーされます。このイベントは非同期でトリガーされるため、メッセージの送信からメッセージの受信 (受信ウィンドウのメッセージ イベントのトリガー) までにイベント遅延が発生する可能性があります。 message イベントがトリガーされた後、onmessage ハンドラーに渡されるイベント オブジェクトには、次の 3 つの重要な情報が含まれます。

data: postMessage() メソッドの最初のパラメータとして渡される文字列データ

origin: メッセージを送信するドキュメントが配置されているドメイン (例: "http://www.php.cn) /"

source: メッセージを送信するドキュメントのウィンドウ オブジェクトのプロキシ。このプロキシ オブジェクトは主に、前のメッセージを送信したウィンドウで postMessage() メソッドを呼び出すために使用されます。メッセージを送信しているウィンドウが同じドメイン名からのものである場合、このオブジェクトは window です。

メッセージを受信した後、送信ウィンドウのソースを確認することが非常に必要です。 postMessage() メソッドに 2 番目のパラメータを指定して、ブラウザが不明なページにメッセージを送信しないようにするのと同じように、onmessage() メソッド ハンドラでメッセージのソースをチェックすることで、受信メッセージが既知のページからのものであることを確認できます。ページ。基本的な検出モードは以下の通りです

JavaScriptコード

window.addEventListener(&#39;message&#39;,function(event){
	//确保发送消息的域名是已知的域名
	if(event.origin == "http://blog.csdn.net/lee_magnum"){
		//处理接收到的数据
		processMessage(event.data);
		//可选:向来源窗口发送回执
		event.source.postMessage("收到了", "http://www.leemagnum.com");
	}
}, false);

Event.Sourceは、ほとんどの場合、ウィンドウオブジェクトの単なるプロキシであり、実際のウィンドウオブジェクトではありません。つまり、ウィンドウ オブジェクトに関する他の情報には、このevent.Source プロキシ オブジェクトを通じてアクセスできません。 postMessage() メソッドは、event.Source プロキシを通じてのみ呼び出すことができます。

XDMにはもう一つ奇妙な点があります。まず、postMessage() の最初のパラメータは最初は「常に文字列」として実装されました。ただし、後にこのパラメータの定義が変更され、任意のデータ構造を渡せるようになりました。ただし、すべてのブラウザーがこの変更を実装しているわけではありません。したがって、安全を期すために、postMessage() メソッドを使用するときは、文字列のみを渡すことが最善です。構造化データを渡す場合は、渡されるデータに対して JSON.stringify() を呼び出し、結果の文字列を postMessage() メソッドを通じて渡してから、onmessage イベント ハンドラーで JSON を呼び出すのが最適です。 parse() メソッド。

XDM をサポートするブラウザには、Opera、IE8 以降、Safari 4 以降、Firefox 3.5 以降、Chrome、Webkit for Android、および Safari for iOS が含まれます。 XDM の詳細については、XDM 公式ページを参照してください。 XDMの公式ページはhttp://www.php.cn/

HTML5の実戦やクロスドキュメントメッセージング(iframeでの情報伝達)の解析に関する関連知識が紹介されており、その他の関連コンテンツにも注目してください。 PHP 中国語ネット (www.php.cn) へ!





声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
マスタリングマイクロダタ:HTML5のステップバイステップガイドマスタリングマイクロダタ:HTML5のステップバイステップガイドMay 14, 2025 am 12:07 AM

MicrodatainHTML5enhancesSEOanduserexperiencebyprovidingstructureddatatosearchengines.1)Useitemscope,itemtype,anditempropattributestomarkupcontentlikeproductsorevents.2)TestmicrodatawithtoolslikeGoogle'sStructuredDataTestingTool.3)ConsiderusingJSON-LD

HTML5フォームの新しいものは何ですか?新しい入力タイプの調査HTML5フォームの新しいものは何ですか?新しい入力タイプの調査May 13, 2025 pm 03:45 PM

HTML5INTRODUCESNEWINPUTTYPESTENHANCEUSEREXPERIENCE、SIMPRIYIFYDEVELOPMENT、およびIMPROVEACCESSIBILITY.1)自動的にEmailformat.2)FOTIMIZENUMIMERICYPAD.3)およびSimplifyDateAndtimeInputs、reducingEdeDateDateRutedolutution。

H5の理解:意味と重要性H5の理解:意味と重要性May 11, 2025 am 12:19 AM

H5はHTML5、HTMLの5番目のバージョンです。 HTML5は、Webページの表現力と相互作用を向上させ、セマンティックタグ、マルチメディアサポート、オフラインストレージ、キャンバス描画などの新しい機能を導入し、Webテクノロジーの開発を促進します。

H5:アクセシビリティとWeb標準のコンプライアンスH5:アクセシビリティとWeb標準のコンプライアンスMay 10, 2025 am 12:21 AM

ネットワーク標準へのアクセシビリティとコンプライアンスは、Webサイトにとって不可欠です。 1)アクセシビリティは、すべてのユーザーがウェブサイトに平等にアクセスできるようにします。2)ネットワーク標準は、ウェブサイトのアクセシビリティと一貫性を改善するために続きます。3)アクセシビリティには、セマンティックHTML、キーボードナビゲーション、色コントラスト、代替テキストの使用が必要です。

HTMLのH5タグは何ですか?HTMLのH5タグは何ですか?May 09, 2025 am 12:11 AM

HTMLのH5タグは、小さいタイトルまたはサブタイトルのタグを付けるために使用される5番目のタイトルです。 1)H5タグは、コンテンツの階層を改良し、読みやすさとSEOを改善するのに役立ちます。 2)CSSと組み合わせて、スタイルをカスタマイズして視覚効果を強化できます。 3)H5タグを合理的に使用して、乱用を避け、論理コンテンツ構造を確保します。

H5コード:Web構造に関する初心者向けガイドH5コード:Web構造に関する初心者向けガイドMay 08, 2025 am 12:15 AM

HTML5にWebサイトを構築する方法には、次のものが含まれます。1。セマンティックタグを使用して、などのWebページ構造を定義します。 2。マルチメディアコンテンツ、使用、タグを埋め込みます。 3.フォーム検証やローカルストレージなどの高度な機能を適用します。これらの手順を通じて、明確な構造と豊富な機能を備えた最新のWebページを作成できます。

H5コード構造:読みやすさのためのコンテンツの整理H5コード構造:読みやすさのためのコンテンツの整理May 07, 2025 am 12:06 AM

合理的なH5コード構造により、ページは多くのコンテンツの中で際立っています。 1)コンテンツなどのセマンティックラベルを使用して、構造を明確にするためにコンテンツを整理します。 2)FlexBoxやグリッドなどのCSSレイアウトを介して、さまざまなデバイスでのページのレンダリング効果を制御します。 3)レスポンシブデザインを実装して、ページがさまざまな画面サイズに適応するようにします。

H5対古いHTMLバージョン:比較H5対古いHTMLバージョン:比較May 06, 2025 am 12:09 AM

HTML5(H5)以降のバージョンのHTMLの主な違いには、次のものが含まれます。1)H5はセマンティックタグを導入し、2)マルチメディアコンテンツをサポートし、3)オフラインストレージ機能を提供します。 H5は、新しいタグやタグなどのAPIを介してWebページの機能と表現力を高め、ユーザーエクスペリエンスやSEO効果を改善しますが、互換性の問題に注意を払う必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール