2012-01-25 5 views
0

La fonction de mon window.addEventListener ne se déclenche pas même lorsque j'envoie à plusieurs reprises les messages de domaine via postMessage. Il semble qu'il ne reçoive aucune réponse du tout. Voici le code:html5 postMessage ne fonctionne pas

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

Pourquoi l'auditeur ne capte-t-il jamais les messages?

Répondre

0

Vous enregistrez le gestionnaire sur la mauvaise fenêtre. Essayez

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

L'eventlistener ne doit-il pas être enregistré dans la fenêtre cible, pas dans l'expéditeur du message (le popup)? – zakdances

+0

Dans votre code, l'expéditeur du message est votre fenêtre actuelle et la cible de 'postMessage' est votre fenêtre contextuelle. Donc, l'auditeur devrait très probablement être enregistré dans la fenêtre contextuelle. –

+0

Est-ce que newPopup.postMessage() ne signifie pas que le message est en cours de publication FROM newPopup? – zakdances