Saya sedang mencari cara bagaimana berkomunikasi antara banyak tab atau jendela di browser (pada domain yang sama, bukan CORS) tanpa meninggalkan jejak. Ada beberapa solusi:
Yang pertama mungkin adalah solusi terburuk - Anda perlu membuka jendela dari jendela Anda saat ini dan kemudian Anda dapat berkomunikasi hanya selama Anda tetap membuka jendela. Jika Anda memuat ulang halaman di salah satu jendela, kemungkinan besar Anda kehilangan komunikasi.
Pendekatan kedua, menggunakan postMessage, mungkin memungkinkan komunikasi lintas asal, tetapi mengalami masalah yang sama dengan pendekatan pertama. Anda perlu mempertahankan objek jendela.
Cara ketiga, menggunakan cookie, menyimpan beberapa data di browser, yang secara efektif dapat terlihat seperti mengirim pesan ke semua jendela di domain yang sama, tetapi masalahnya adalah Anda tidak akan pernah tahu apakah semua tab membaca "pesan" sudah atau belum sebelumnya membersihkan. Anda harus menerapkan semacam batas waktu untuk membaca cookie secara berkala. Selain itu, Anda dibatasi oleh panjang cookie maksimum, yaitu 4KB.
Solusi keempat, menggunakan localStorage, tampaknya mengatasi keterbatasan cookie, dan bahkan dapat mendengarkan-menggunakan acara. Cara menggunakannya dijelaskan dalam jawaban yang diterima.
Sunting 2018: jawaban yang diterima masih berfungsi, tetapi ada solusi yang lebih baru untuk peramban modern, untuk menggunakan BroadcastChannel. Lihat jawaban lain untuk contoh sederhana yang menjelaskan cara mudah mengirim pesan antar tab dengan menggunakan BroadcastChannel.