onBeforeRequest不触发:期望'对象'但得到了阵列'

时间:2017-03-02 14:56:03

标签: javascript google-chrome-extension

我试图让onBeforeRequest触发但它不会触发一次。

background page console显示错误:

  

参数1的值无效。预期'对象'但得到了阵列'

的manifest.json

{
  "name": "Blocker",
  "version": "1.0",
  "description": "Blocks all websites",
  "permissions": ["webRequest", "webRequestBlocking", "<all_urls>"],
  "background": {
    "scripts": ["background.js"]
  },

  "manifest_version": 2
}

background.js

chrome.webRequest.onBeforeRequest.addListener(
  function(info) {
    console.log("TRIGGERED")
    return {cancel: true};
  },
  // extraInfoSpec
  ["blocking"]);

我做错了什么,或者我只是期待onBeforeRequest不应该做什么?例如,我期望以下内容:

  1. 我在网址栏中输入网址
  2. 我按回车
  3. onBeforeRequest在网站显示之前触发
  4. 用户收到网站被阻止的消息

1 个答案:

答案 0 :(得分:1)

根据documentation

  

除了指定回调函数外,还必须指定过滤器参数

chrome.webRequest.onBeforeRequest.addListener(
    function(info) {
        console.log(info);
        return {cancel: true};
    }, {
        urls: ['<all_urls>'],
    },
    ['blocking']
);