Chrome.webRequest не определен

Не уверен, где я ошибаюсь здесь:

контент.js

chrome.webRequest.onBeforeRequest.addListener(
  function(info) {
    console.info("URL intercepted: " + info.url);
  },
  // filters
  {
    urls: [
      "<all_urls>"
    ]
  },
  // extraInfoSpec
  ["blocking"]
);

manifest.json

{
  "name": "Color Changer",
  "author": "Microsoft Edge Extension Developer",
  "description": "Change the color of the body on learn.microsoft.com",
  "version": "1.0",
  "manifest_version": 2,
  "icons": {
    "25": "images/color-changer25.png",
    "48": "images/color-changer48.png"
  },
    "permissions": [
    "webRequest",
    "webRequestBlocking",
        "tabs",
        "notifications",
        "http://*/",
        "https://*/"
    ], 
  "browser_action": {
    "default_icon": {
      "20": "images/color-changer20.png",
      "40": "images/color-changer40.png"
    },
    "default_title": "Color Changer",
    "default_popup": "popup.html"
  },
  "content_scripts": [{
    "matches": [
        "<all_urls>"
    ],
    "js": [
      "js/jquery-3.5.1.min.js",
      "js/content.js"
    ],
    "run_at": "document_end"
  }],
  "background": {
    "scripts": ["js/background.js"],
    "persistent": true
  },
  "web_accessible_resources": [
    "css/*.css",
    "js/*.js",
    "html/*.html"
  ]
}

Ошибка:

Uncaught TypeError: невозможно прочитать свойство onBeforeRequest неопределенного

Скрипты содержимого не могут использовать большую часть API Chrome. Сделайте это в фоновом скрипте.

wOxxOm 24.12.2020 13:04

Спасибо @wOxxOm - не стесняйтесь публиковать в качестве ответа, и я приму.

TomSelleck 24.12.2020 16:48

Скрипты контента имеют некоторые ограничения. Они не могут использовать API-интерфейсы chrome.*, за исключением расширения, i18n, среды выполнения и хранилища. Вместо этого вам нужно использовать фоновый скрипт.

Deepak-MSFT 25.12.2020 06:17

у вас есть рабочий пример? или может быть обновлен принятый ответ с соответствующим кодом.

ankitd 11.08.2022 09:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
4
1 240
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Скрипты содержимого работают в контексте страницы, на которую они вводятся. chrome.* недоступен для страниц.

Другие вопросы по теме