我試圖構建一個常規的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
}