chrome.webRequest不会捕获所有请求

时间:2018-01-27 12:51:52

标签: google-chrome-extension

我正在编写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?也许我犯了错误但找不到它们? 谢谢!

1 个答案:

答案 0 :(得分:0)

如果有人会犯同样的错误: chrome.webRequest捕获所有请求,但content.js文件稍后注入(在几个请求之后)。 因此,您应该在background.js中收集请求并在content.js注入后发送它们(例如,您可以向background.js发送消息)。