postMessage或addEventListener都无法正常工作

时间:2013-07-21 18:11:37

标签: javascript html5 postmessage

以下JavaScript代码使用HTML5 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/

永远不会收到该消息。是什么原因?

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

您正在收听testMsg个活动,但postMessage会触发message个活动。

答案 2 :(得分:0)

就像其他人所说的那样,您需要监听"message"事件,而不是"testMsg"。这是工作代码更清晰的代码示例

window.addEventListener('message', function(event) {
    alert('got a message'); // event.data == "hello world"
}, false );

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