2013-07-21 76 views
0

以下JavaScript代碼使用HTML5的postMessage /的addEventListener功能將消息發送到其自身:要麼的postMessage或的addEventListener不工作

window.addEventListener('testMsg', function(event) { 
    alert('got a message'); /* Never happens. Why? */ 
}, false); 

window.addEventListener('load', function(event) { 
    alert('sending message');  
    window.postMessage('testMsg', '*'); 
}, false); 

甲對應的撥弄:

http://jsfiddle.net/ZGvLg/3/

該消息是從未收到。是什麼原因?

+0

哪裏'testMsg'事件定義? –

回答

2

我修改了小提琴。你在聽錯事件。

FIDDLE

應該

window.addEventListener('message', function(event) { 
    alert('got a message'); /* Never happens. Why? */ 
}, false); 

window.addEventListener('load', function(event) { 
    alert('sending message');  
    window.postMessage('message', '*'); 
}, false); 
+0

消息不是一個事件!!!然後如何發出警報??只是要求... + 1 –

+0

幾個小時的工作與3分鐘的堆棧溢出,以及一個新的眼睛的好處:)謝謝! – Roman

+0

@MESSIAH - 這是一個活動。這是postMessage的重點。 – Quentin

1

您正在收聽testMsg事件,但postMessage將觸發message事件。

+0

正確的答案。 – Roman