1

我試圖構建一個常規的Chrome瀏覽器擴展(不是 devtool擴展),當在特定頁面上激活時,請求資源的所有IP列表。我知道如何通過在devtools_page中調用chrome.devtools.network.getHAR()從HAR日誌中獲取此列表,然後將HAR日誌消息發送到後臺腳本。但是,您只能從devtools頁面中調用chrome.devtools。*,該頁面僅存在於瀏覽器中的開放devtools窗口的生命週期內。我不想打開devtools來調用devtools.js中的這個函數。有沒有辦法打電話給chrome.devtools。從background.js而不必在瀏覽器中打開devtools?如何在瀏覽器中調用chrome.devtools。* api調用,而無需在瀏覽器中打開devtools

這裏發生了什麼現在:

// background.js 
chrome.runtime.onConnect.addListener(function(port) { 
    console.assert(port.name == "somePort"); 
    port.onMessage.addListener(function(msg) { 
     console.log(msg.content); 
    }); 
}); 

// devtools.js 
chrome.devtools.network.getHAR(function(harLog) { 
    var port = chrome.extension.connect({name: "somePort"}); 
    port.postMessage({content: harLog}); 
}); 

//manifest.json 
"devtools_page": "devtools.html", 
"background": { 
    "scripts": [ 
     "background.js" 
    ], 
    "persistent": false 
} 

回答