Подтвердить что ты не робот

Разница между фоном script и контентом script в chrome extension

Как говорится в ответах, Я просто хочу знать разницу между фоном script и контентом script в расширении chrome. Когда я зарегистрировал хром-объект в обоих сценариях, я нашел разные объекты.

Использовать регистр

Я хочу вставить свой javascript на страницу при щелчке значка. Итак, в manifest.json я добавил контент script, но я не могу прослушать событие щелчка значка внутри содержимого script.

chrome.browserAction не определено в объекте chrome в контенте script.

Вопрос

Как я могу прослушать событие click в контенте script. Можем ли мы включить фон и контент script?

Это мой manifest.json

{
  "name": "First Plugin Testing",    
  "version": "1.0",
  "manifest_version": 2,    
  "description": "Trying hands on first extension",
  "background": { "scripts": ["background.js"] },
  "browser_action": {
    "default_icon": "icon.png"
  },
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "content_scripts": [
    {
      "matches": ["http://*/*"], 
      "js": ["temp.js"]
    }
  ]
}
4b9b3361

Ответ 1

Я нашел ответ на заданные вопросы.

а. Можем ли мы включить как контент script, так и background script?

Да, мы можем включать в себя как фоновые сценарии, так и сценарии содержимого. Для взаимодействия между ними вы можете использовать API для передачи сообщений Chrome.

Я делал то же самое, но была некоторая ошибка в фоновом режиме script, который я не мог видеть, поэтому я разместил этот вопрос после некоторого поиска в google.

В. Как я могу прослушать событие click в контенте script?

Решение: У нас не может быть browser click event в содержании script. Он имеет только частичный доступ к объекту chrome. Итак, вы должны получить обработчик кликов в фоновом режиме script и отправить сообщение в контент script и делать все, что хотите.

Используйте chrome.browserAction.onClicked событие в фоновом режиме script, а затем используйте сообщение, чтобы отправить информацию в контент script, на который пользователь нажал значок.