Javascript postMessage或addEventListener不工作

Javascript postMessage或addEventListener不工作,javascript,html,postmessage,Javascript,Html,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

以下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);
相应的小提琴:


消息从未收到。原因是什么?

您正在侦听
testMsg
事件,但是
postMessage
将触发
消息
事件。

我修改了小提琴。你听错了

应该是

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);

正如其他人所说,您需要侦听
“message”
事件,而不是
“testMsg”
。这里有一个更清晰的工作代码示例

window.addEventListener('message',函数(事件){
警报(“收到消息”);//event.data==“你好,世界”
},假);
window.addEventListener('load',函数(事件){
警报(“发送消息”);
window.postMessage('helloworld!','*');
},假);

testMsg事件在哪里定义?几个小时的工作,而不是堆栈溢出时的3分钟,以及一双新眼睛的好处:)谢谢@弥赛亚——这是一件大事。这就是postMessage的要点。答案也是正确的。