我正在尝试构建一个常规的chrome浏览器扩展(,而不是,一个开发工具扩展),当在特定页面上激活它时,它会获得请求资源的所有IP的列表。我知道如何通过调用chrome.devtools.network.getHAR()从devtools_page日志中获取这个列表,然后将HAR日志消息传递给一个后台脚本。但是,您只能从devtools页面中调用chrome.devtools.*,它只存在于浏览器中打开的devtools窗口的生存期内。我不想仅仅为了在devtools.js中调用这个函数而打开devtools。有没有办法调用chrome.devtools。*例如从background.js调用,而不必在浏览器中打开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
}发布于 2016-08-03 10:33:35
不幸的是, api without opening up devtools window.
chrome.devtools.*API模块只对加载在DevTools窗口中的页面可用。内容脚本和其他扩展页没有这些API。因此,API仅在DevTools窗口.的生存期内才可用。
https://stackoverflow.com/questions/38733845
复制相似问题