2012-01-25 1 views
0

Функция window.addEventListener не срабатывает, даже когда я повторно отправляю сообщения домена через postMessage. Похоже, что он не получает никакого ответа вообще. Вот код:html5 postMessage не работает

var myUrl = 'http://localhost:8085'; 
var newPopup = window.open(myUrl, '_blank', ''); 

// Create listener 
window.addEventListener('message',function(event) { 

    if (event.origin !== 'http://localhost:8085') return; 
    console.log('received response: ',event.data); 

},false); 

// Setup messenging 
setInterval(function(){ 
    var message = 'Hello! The time is: ' + (new Date().getTime()); 
    console.log('blog.local: sending message: ' + message); 
    newPopup.postMessage(message,'http://localhost:8085'); 
},2000); 

Почему не прослушивает сообщения?

ответ

0

Вы регистрируете обработчик в неправильном окне. Попробуйте

newPopup.addEventListener('message',function(event) { 
    ... 
+0

Нельзя ли зарегистрировать событие в целевом окне, а не отправителе сообщения (всплывающее окно)? – zakdances

+0

В вашем коде отправитель сообщения является вашим текущим окном, а целью «postMessage» является ваше всплывающее окно. Таким образом, слушатель, скорее всего, будет зарегистрирован во всплывающем окне. –

+0

Не newPopup.postMessage() означает, что сообщение отправляется из newPopup? – zakdances