≪ Today I learned.
RSS購読
    公開日
    タグ
    JavaScript
    著者
    ダーシノ

    Broadcast Channel APIで閲覧コンテキスト間で相互通信を行う

    Broadcast Channel APIを使うことで、同一デバイス、同一オリジンにおいて任意のチャンネル名を指定し閲覧コンテキスト間(※)で相互通信ができる。

    ※閲覧コンテキストとは、ウィンドウ、タブ、フレーム、iframeのこと

    たとえば、ユーザーが別タブで別アカウントでログインしたことを検知してメッセージを表示するなどができる。

    Broadcast Channel APIの使い方

    const bc = new BroadcastChannel('my-channel')
    
    // メッセージ送信
    bc.postMessage(...)
    
    // メッセージ受信
    bc.onmessage = ev => console.log(ev.data)
    
    // 切断
    bc.close()

    window.postMessage()との違い

    window.postMessage()という、Windowオブジェクト間でやりとりできるメソッドもあるが、Broadcast Channel APIはそれをさらに安全に使いやすくしたAPIと言える。