我正在编写chrome扩展程序,我需要从下载页面的开头捕获所有请求。
我在chrome.webRequest.onBeforeRequest
中使用background.js
,并将其发送到content.js
进行记录。
但我没有看到所有要求。看起来background.js
开始处理延迟(我错过了重要的请求)。我怎么能避免它?
这是我的background.js
:
chrome.webRequest.onBeforeRequest.addListener(logURL, { urls: ["<all_urls>"] });
function logURL(requestDetails) {
chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
chrome.tabs.sendMessage(
tabs[0].id,
{ message: requestDetails.url },
function(response) {}
);
});
}
和content.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.message == "reload") {
location.reload();
console.log("reload");
} else {
console.log(request.message);
}
});
如何捕获所有请求或以前运行background.js
?也许我犯了错误但找不到它们?
谢谢!
答案 0 :(得分:0)
如果有人会犯同样的错误: chrome.webRequest捕获所有请求,但content.js文件稍后注入(在几个请求之后)。 因此,您应该在background.js中收集请求并在content.js注入后发送它们(例如,您可以向background.js发送消息)。