chrome.webRequest.onBeforeRequest捕获AngularJS XHR请求

时间:2016-04-28 22:00:25

标签: angularjs xmlhttprequest

我一直在尝试编写Chrome扩展程序,我需要在请求开始时以及完成时捕获XHR请求。到目前为止,我知道我需要使用:

  • chrome.webRequest.onBeforeRequest和
  • chrome.webRequest.onCompleted

这是我的清单文件:

{
 "name": "Koala",
  "version": "1.0",
  "manifest_version": 2,
  "description": "test",
  "browser_action": {
    "default_icon": "koala.png",
    "default_popup": "koala.html"
  },
  "permissions": [
    "<all_urls>",
    "activeTab",
    "webRequest"
  ],
  "content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["content.js"]
  }],
  "background":{
    "persistent": true,
    "scripts": ["background.js"]
  },
  "permissions": [
    "activeTab"
  ]
}

事件监听器需要进入后台脚本。这是我的background.js文件中的摘录:

chrome.webRequest.onBeforeRequest.addListener(function(details){
  //message to context.js and koala.js
},{urls: ["<all_urls>"],types: ["xmlhttprequest"]},[]);

chrome.webRequest.onCompleted.addListener(function(details){
  //message to context.js and koala.js
},{urls: ["<all_urls>"],types: ["xmlhttprequest"]},[]);

我尝试通过alert,console.log,message来显示详细信息对象的内容,但似乎事件监听器似乎从未捕获任何内容。我希望这段代码能够捕获任何类型的HTML片段注入,而不仅仅是AngularJS,因此我不能单独依赖AngularJS事件。我错过了什么明显的东西吗?

谢谢,

阿尔

1 个答案:

答案 0 :(得分:1)

我明白了。 您有权限两次定义您的manifest.json。仅使用activeTab删除第二个权限属性,您应该在业务中。