2013-07-21 2 views
0

Следующий код JavaScript использует функцию/addEventListener HTML5 PostMessage, чтобы отправить сообщение самому себе:Либо 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

Смежные вопросы