この記事で分かること
postMessageを使ったフレーム間通信の基本iframe・別ウィンドウ・親子ウィンドウ間でのデータ送受信originチェックによるセキュリティ対策- 実務での利用例と注意点
JavaScript の postMessage は、iframe や別ウィンドウ間で安全にデータをやり取りするための重要な仕組みです。
この記事では、フレーム間通信の基本から origin チェックによるセキュリティ対策、実務での利用例まで分かりやすく解説します。
postMessage とは?
postMessage は、異なるウィンドウ・タブ・iframe 間で
安全にデータを送受信するための仕組みです。
通常、JavaScript は 同一オリジン制限 により、
別ドメインの iframe やウィンドウを操作できません。
しかし postMessage を使うと、
異なるドメイン間でも安全に通信が可能 になります。
基本構文(送信側)
targetWindow.postMessage("メッセージ内容", "https://example.com");
- 第一引数:送るデータ(文字列・オブジェクト)
- 第二引数:送信先の
origin(必須)
基本構文(受信側)
window.addEventListener("message", (event) => {
console.log(event.data);
});
event.data に送られてきたデータが入ります。
iframe → 親ウィンドウへ送信する例
iframe 内のページから親ウィンドウへメッセージを送る例です。
// iframe 内のコード
window.parent.postMessage("Hello Parent!", "https://example.com");
親ウィンドウ → iframe へ送信する例
const iframe = document.getElementById("myFrame");
iframe.contentWindow.postMessage("Hello iframe!", "https://child.example.com");
受信側のセキュリティ(origin チェック)
postMessage を使う際に最も重要なのが
origin チェック です。
window.addEventListener("message", (event) => {
if (event.origin !== "https://example.com") return;
console.log("安全なメッセージ:", event.data);
});
origin をチェックしないと、
悪意あるサイトからメッセージを受け取ってしまう可能性があります。
オブジェクトを送ることも可能
window.postMessage({ type: "login", user: "shin" }, "https://example.com");
オブジェクトを送ることで、
より複雑なデータ通信が可能になります。
実務での利用例
- 外部サービスのウィジェット通信
- 広告
iframeとのデータ連携 - 決済ページとの安全な通信
- SPA と
iframeの連携
特に「外部サービスの埋め込み」では
postMessage が必須技術になっています。
JavaScript 初心者におすすめの学習書籍
書籍で学ぶのが向いている人
postMessageを使ったフレーム間通信の仕組みを体系的に理解したいiframe・別ウィンドウ・親子ウィンドウ間のデータ連携を基礎から学びたい- セキュリティ(
originチェック)を含めて正しい実装を身につけたい
postMessage は、異なるドメイン間でも安全に通信できる唯一の標準API です。
書籍では JavaScript の基本構造・イベント処理・ブラウザの仕組みを順序立てて学べるため、
フレーム間通信の理解がより深まります。
いちばんやさしい JavaScript の教本
図解が多く、JavaScript の基本文法やブラウザの動作を視覚的に理解できる入門書です。
iframe の仕組みやイベント処理など、postMessage を理解する前提知識をしっかり固められます。
この本で解決できること:
- ウィンドウ・フレームの仕組みを基礎から理解できる
- イベント処理や非同期処理など、
postMessageと相性の良い基礎が身につく - ブラウザ間通信の前提となる JavaScript の土台を固められる
確かな力が身につく JavaScript「超」入門
実務的な JavaScript を学びたい方に最適な入門書です。
ウィンドウ操作・イベント・非同期処理など、postMessage を使う際に必要な知識が体系的に学べます。
この本で解決できること:
- ウィンドウ間通信の基礎となるイベント処理・非同期処理が理解できる
iframeや外部サービス連携の基礎が身につく- 実務で必要なセキュリティ意識(
originチェック)を学べる
動画で理解を深めたい方へ(Udemy講座)
postMessage のようなフレーム間通信は、
実際の画面遷移やウィンドウ間の動きを見ながら学ぶと理解が一気に深まります。
動画では「送信 → 受信 → origin チェック」の流れがそのまま確認でき、
初心者でも直感的に理解できます。
初心者のためのJavaScript 完全入門
JavaScript の基礎・イベント処理・非同期処理など、postMessage を理解するための土台を体系的に学べる人気講座です。
この講座で解決できること:
- ウィンドウ・
iframeの仕組みを視覚的に理解できる - イベント処理と非同期処理の流れが明確になる
postMessageの前提となるブラウザの動作理解が深まる
→ 初心者のためのJavaScript 完全入門(Udemy)
超JavaScript 完全ガイド 2026
実務で必要なブラウザ操作・外部サービス連携・セキュリティなど、
postMessage を使う場面に直結する知識を深く学べる講座です。
この講座で解決できること:
postMessageを使った実践的なフレーム間通信が理解できる- 外部サービスとの安全なデータ連携の考え方が身につく
originチェックなど実務的なセキュリティ知識が習得できる
体系的に学びたい方へ(スクールという選択肢)
独学の限界を感じやすいポイント
postMessageの仕組みが断片的な理解になりやすいiframe・別ウィンドウ・親子ウィンドウの関係が複雑に感じる- セキュリティ(
originチェック)でつまずいても相談できない - 実務レベルの外部サービス連携の知識が身につきにくい
スクールでは、プロの講師が学習ロードマップを作成し、
postMessage を含むフレーム間通信や
JavaScript の基礎を体系的に理解できるようサポートしてくれます。
無料相談で得られるメリット
- あなたのレベルに合わせた学習計画を作成
- フレーム間通信や外部サービス連携の理解を深めるアドバイスがもらえる
- 効率的な学習方法をプロが提案
- エンジニア転職を視野に入れたキャリア相談も可能
JavaScript を効率よく学びたい方には、未経験からエンジニアを目指せる
DMM WEBCAMP の学習コースも選択肢のひとつです。
postMessage に関するよくある質問(FAQ)
postMessage は異なるドメインでも使えますか?
はい、使えます。同一オリジン制限を超えて通信できる数少ないAPIです。
origin チェックは必須ですか?
必須です。チェックしないと悪意あるサイトからメッセージを受け取る危険があります。
iframe 内の DOM を postMessage で操作できますか?
DOM を直接操作することはできません。postMessage はデータ通信のみです。
postMessage はどんな場面で使われますか?
外部サービスの埋め込み、広告、決済ページ、ウィジェット通信など、異なるドメイン間の連携で広く使われます。
まとめ
postMessage は、iframe や別ウィンドウ間で
安全にデータを送受信できる唯一の標準API です。
同一オリジン制限を超えて通信できるため、
現代の Web アプリケーションでは欠かせない技術です。
ただし、セキュリティのために
origin チェックは必ず行う ようにしましょう。