2012-01-25 85 views
0

即使我通過postMessage重複發送域消息,我的window.addEventListener函數也沒有被激發。似乎它沒有收到任何迴應。這裏是代碼: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

不應將eventlistener註冊到目標窗口,而不是消息發送者(彈出窗口)? – zakdances

+0

在你的代碼中,消息發送者是你當前的窗口,'postMessage'的目標是你的彈出窗口。所以聽者應該很可能在彈出窗口中註冊。 –

+0

不是newPopup.postMessage()表示消息是從newPopup發佈的? – zakdances