Я шукав спосіб спілкування між декількома вкладками чи вікнами у браузері (на одному домені, а не CORS), не залишаючи слідів. Рішення було декілька:
Перше, мабуть, найгірше рішення - вам потрібно відкрити вікно з вашого поточного вікна, і тоді ви зможете спілкуватися лише до тих пір, поки ви не будете тримати вікна відкритими. Якщо ви перезавантажите сторінку в будь-якому з вікон, ви, швидше за все, втратили зв’язок.
Другий підхід, використовуючи postMessage, ймовірно, забезпечує взаємозв'язок між походженнями, але має таку ж проблему, що і перший підхід. Вам потрібно підтримувати об’єкт вікна.
По-третє, використовуючи файли cookie, зберігайте деякі дані у браузері, що може виглядати як надсилання повідомлення у всі вікна одного і того ж домену, але проблема полягає в тому, що ви ніколи не можете знати, чи всі вкладки читали "повідомлення" вже раніше чи ні очищення. Ви повинні впроваджувати певний час очікування, щоб періодично читати файли cookie. Крім того, ви обмежені максимальною довжиною файлу cookie, яка становить 4 КБ.
Четверте рішення, використовуючи localStorage, здавалося, подолало обмеження файлів cookie, і його можна навіть слухати, використовуючи події. Як його використовувати описано у прийнятій відповіді.
Редагувати 2018: прийнята відповідь як і раніше працює, але є сучасне рішення для сучасних браузерів - використовувати BroadcastChannel. Інший відповідь див. Для простого прикладу, що описує, як легко передавати повідомлення між вкладками за допомогою BroadcastChannel.