2015-07-03 48 views
2

我有一个弹出窗口(不是由我自己制作的)发送postMessage登录回调。从Chrome新选项卡扩展名接收postMessage

在新标签页(打开弹出窗口)中,我无法收到此消息。

这里是我的代码:

window.addEventListener("message", receiveMessage, false); 
function receiveMessage(event) 
{ 
    console.log("MESSAGE RECEIVED!"); 
    console.log(event.data); 
} 

^这是行不通的。

(我知道下面的API,chrome.runtime.onMessageExternal的,但由于弹出不通过Chrome运行时发送消息,我不能用这个)

我该如何解决这个问题?

回答

0

发布消息是来回处理。尝试这个。

/* in the extension */ 
 
var description = {}; 
 
chrome.tabs.sendMessage(tabs[0].id, { 
 
    desc: 'some value' 
 
}, function(response) { 
 
    description.value = response.details; 
 
    /* do your thing */ 
 
}); 
 

 

 
/* in the content script (your popup) */ 
 
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { 
 
    var desc = request.desc; 
 
    sendResponse(desc); 
 
});

+0

也许,这是不是在后明确。但它不是我的弹出窗口,它是从第三方弹出的,用于登录流程,这是我无法控制的。 – GangstaGraham