Window.postMessage'ın amacı, farklı alanlarda barındırılan pencereler / çerçeveler arasında güvenli iletişime izin vermek gibi görünüyor , ancak aslında Chrome'da buna izin vermiyor gibi görünüyor .
İşte senaryo:
- A etki alanındaki bir sayfaya bir <iframe> (
src
B * etki alanında a ile) yerleştirin - <iframe>, çoğunlukla yürütmenin sonunda bir <script> etiketi olur ...
- Window.postMessage ( bazı_veriler , sayfa_on_A ) çağırıyorum
<iframe>, kesinlikle B etki alanı bağlamındadır ve bu <iframe> içindeki gömülü javascript'in düzgün çalıştığını ve postMessage
doğru değerlerle çağırdığını doğruladım .
Bu hata mesajını Chrome'da alıyorum:
A'ya mesaj gönderilemiyor . Alıcının kaynağı B'dir .
İşte A'daki sayfada bir mesaj olay dinleyicisini kaydeden kod:
window.addEventListener(
"message",
function (event) {
// Do something
},
false);
Aramayı da denedim window.postMessage(some_data, '*')
, ancak tek yaptığı hatayı bastırmak.
Buradaki noktayı mı kaçırıyorum, window.postMessage (...) bunun için değil mi? Yoksa bunu korkunç derecede yanlış mı yapıyorum?
* Kalması gereken mime tipi metin / html.