Разница между фоновым скриптом и скриптом содержимого в расширении chrome

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

пример использования

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

chrome.browserAction не определен в объекте chrome в сценарии содержимого.

вопрос

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

Это мой манифест.в 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"]
    }
  ]
}

1 ответов


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

A. можем ли мы включить как сценарий контента, так и фоновый скрипт ?

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

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

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

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

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