İz bırakmadan bir tarayıcıda (aynı etki alanında, CORS değil) birden çok sekme veya pencere arasında iletişim kurmanın bir yolunu arıyordum. Birkaç çözüm vardı:
Birincisi muhtemelen en kötü çözümdür - mevcut pencerenizden bir pencere açmanız gerekir ve daha sonra yalnızca pencereleri açık tuttuğunuz sürece iletişim kurabilirsiniz. Sayfayı pencerelerden herhangi birine yeniden yüklerseniz, büyük olasılıkla iletişimi kaybettiniz.
PostMessage kullanan ikinci yaklaşım, muhtemelen çapraz kökenli iletişimi mümkün kılar, ancak ilk yaklaşımla aynı sorunu yaşar. Bir pencere nesnesini korumanız gerekir.
Üçüncü olarak, çerezleri kullanarak, tarayıcıdaki bazı verileri saklayın, bu da aynı etki alanındaki tüm pencerelere bir mesaj göndermek gibi görünebilir, ancak sorun, tüm sekmelerin daha önce "mesajı" okuyup okumadığını asla bilemeyeceğinizdir. temizlemek. Çerezi periyodik olarak okumak için bir çeşit zaman aşımı uygulamanız gerekir. Ayrıca, 4KB olan maksimum çerez uzunluğu ile sınırlandırılırsınız.
LocalStorage kullanan dördüncü çözüm, çerezlerin sınırlamalarının üstesinden gelmiş gibi görünüyordu ve hatta olayları kullanarak dinlenebilir. Nasıl kullanılacağı kabul edilen cevapta açıklanmaktadır.
Edit 2018: Kabul edilen cevap hala çalışıyor, ancak modern tarayıcılar için BroadcastChannel'i kullanmak için daha yeni bir çözüm var. BroadcastChannel'i kullanarak mesajların sekmeler arasında nasıl kolayca iletileceğini açıklayan basit bir örnek için diğer cevaba bakınız.