Javascript postMessage或addEventListener不工作
以下JavaScript代码使用HTML5 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
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的要点。答案也是正确的。