2016-12-31 133 views
0

我正在製作一個Chrome擴展,它在加載後立即關閉某個網站,並且有一個content.js頁面和一個background.js頁面。該background.js頁的工作,並等待來自content.js消息:如何獲得運行content.js的選項卡的選項卡ID?

chrome.runtime.onMessage.addListener(function(msg, _, sendResponse) { 
    if (msg.closeTab) { 
    chrome.tabs.remove(msg.tabID); 
    } 
}); 

和代碼在content.js發送消息是:

addButton("Close this tab.", function() { 
    chrome.runtime.sendMessage({closeTab: true, tabID: tab.id}); 
}); 

,但我有問題tab是未定義的。 我正在使用一個按鈕來測試功能。

回答

2

在您的消息監聽器函數中,可以使用第二個參數來檢索調用者的選項卡標識,但不能從內容腳本中獲取選項卡標識。

chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse){ 
    if (msg.closeTab){ 
     chrome.tabs.remove(sender.tab.id) 
    } 
}); 

而且content.js將

addButton("Close this tab", function(){ 
    chrome.runtime.sendMessage({closeTab:true}); 
}); 

chrome.runtime.onMessage,尤其是第二個參數sender

+0

'_'究竟代表什麼? – doominabox1

相關問題