HTMLのpostMessage()でクロスドキュメントメッセージを送信する方法
クロスドキュメントメッセージングとは
HTMLでは、新しいiframe要素や新規ウィンドウを作成することで、別のWebブラウジングコンテキストを生成できます。こうした異なるコンテキスト間で安全にデータをやり取りするために使われるのが、postMessage()メソッドです。
postMessage()の2つの引数
postMessage()メソッドには、以下の2つの引数を指定します。
- message: 送信したいメッセージ本体(文字列やオブジェクトなど)
- targetOrigin: メッセージの送信先となるオリジン名(例:https://example.com)
実装例:ボタンクリックでiframeにメッセージを送信する
次の例では、ボタンがクリックされたタイミングで、iframe内のウィンドウへメッセージを送信しています。
var iframe = document.querySelector('iframe');
var button = document.querySelector('button');
var clickHandler = function(){
iframe.contentWindow.postMessage('送信するメッセージです。', 'https://www.tutorialspoint.com');
}
button.addEventListener('click', clickHandler, false);
コードのポイント
document.querySelector('iframe')で対象のiframe要素を取得します。iframe.contentWindow.postMessage()を呼び出すことで、iframe内のウィンドウにメッセージを送れます。- 第2引数のtargetOriginを正しく指定することで、意図しないドメインへの情報漏洩を防止できます。
メッセージを受信する側の実装
受信側では、messageイベントをリスナーとして登録します。
window.addEventListener('message', function(event) {
// 送信元オリジンの検証
if (event.origin !== 'https://www.tutorialspoint.com') return;
console.log('受信したメッセージ:', event.data);
}, false);
event.originによる送信元チェックを行ってからevent.dataを処理すれば、セキュリティリスクを抑えつつ、安全なクロスドキュメント通信を実現できます。
-
AndroidでGoogleアシスタントを使ってメッセージを送受信する方法
メッセージのやり取りをより安全で快適なものにするため、Googleアシスタントでは「声だけで」連絡先にSMSを送信できるようになっています。両手がふさがっているときや、ながら作業中に大活躍する機能です。さらに、運転中のメッセージ入力といった危険な行為を防ぐ効果も期待できます。この機能はWhatsAppのメッセージやボイスメッセージ(音声メッセージ)の送信にも対応しています。Googleアシスタントで音声によるメッセージ送信を始めたい方は、本ガイドの手順に沿って進めてみましょう。AndroidでGoogleアシスタントを使ってSMSを送信する方法まずは、Android端末でGoogleアシスタン
-
Instagramでボイスメッセージを送る方法!録音・送信・取り消しまで完全ガイド
クリスマスが近づくと、メッセージのやり取りがぐっと増える季節になります。Instagramもその傾向をしっかり把握しており、ホリデーシーズンに合わせてメッセージをもっと手軽に送れるようにする新機能を導入しました。 それが「ボイスメッセージ」機能です。この機能は、文字入力で疲れてしまう指にとって嬉しい存在。長文を打ち込む必要がなく、指を酷使することなく気持ちを伝えられます。WhatsAppなど他のメッセージングアプリでボイスメッセージを使ったことがある方なら、Instagramでも迷わず使いこなせるでしょう。 Instagramでボイスメッセージを送信する手順 Instagramでボイスメッセ