首页 > 解决方案 > 后台脚本中的 chrome.webRequest 侦听器仅在打开扩展程序时触发?

问题描述

我正在创建一个使用后台脚本侦听网络流量的扩展程序,使用chrome.webRequest.onBeforeRequest.addListener. 但是,它似乎只是在用户打开扩展程序后才开始监听事件,并且它错过了之前的所有内容。

我认为后台脚本应该不断运行?

相关代码:

背景.js

let requests = []

console.log("background script now running");

chrome.webRequest.onBeforeRequest.addListener(function(details){
   requests.concat(details.requestBody)
   console.log(requests.length)
},
{urls: [ "<all_urls>" ]},['requestBody']);

清单.json

{
  "name": "analytics Extension",
  "description": "Extension to view Analytics Data",
  "version": "0.0.2",
  "manifest_version": 2,
  "browser_action": {
    "default_popup": "index.html",
    "default_title": "Open the popup"
  },
  "permissions": [ "activeTab", "webRequest", "http://*/*", "https://*/*"],
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["./static/js/content.js"],
      "all_frames": true,
      "run_at": "document_end"
    }
  ],
  "web_accessible_resources": ["static/js/script.js"] ,
  "background": {
    "scripts": ["./static/js/background.js"],
    "persistent": true
  } 
}

更有趣的部分是,我在后台脚本中的第一个打印语句在我加载扩展程序后立即打印,但只有在我打开扩展程序后监听器才会启动。请指教

标签: javascriptgoogle-chrome-extension

解决方案


推荐阅读