2014-11-05 115 views
3

我嘗試使用下面的代碼從background.js將消息發送到content.jsChrome擴展:從background.js消息content.js

背景

chrome.runtime.sendMessage({'method': 'test'}); 

內容

chrome.runtime.onMessage.addListener(function(message,sender,sendResponse){ 
    if(message.method == 'test') 
    console.log('Got message'); 
}); 

後臺消息發送時background.js從發生在點擊事件上的popup.js收到特定消息。因此,用戶點擊彈出窗口中的按鈕,並將消息發送到後臺然後發送到內容。

我有一種感覺,我的問題是這樣的事實,即當在彈出窗口(這是一個單獨的選項卡)中單擊該按鈕時,內容腳本不會收到它,因爲它不是當前活動選項卡。

請幫我一把。

回答

9

在Chrome API中有2 sendMessage函數。

所以,要發送消息到內容腳本,您需要使用chrome.tabs。要從內容腳本(或擴展頁面內)發送消息,您需要使用chrome.runtime

兩種情況下的事件都是chrome.runtime.onMessage

有關更多詳細信息,請參閱Messaging docs

+0

這很有道理!感謝您的幫助。 – ALR 2014-11-06 08:36:09

+0

當我認爲我的問題來自對方時,這也幫助了我[這裏](http://stackoverflow.com/questions/27952019/chrome-runtime-onmessage-addlistener-not-registering-within-created-tab) – 2015-01-14 23:16:45

相關問題