Расширение Chrome: заставляйте запускать каждую страницу - PullRequest
70 голосов
/ 27 июня 2011

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

Ответы [ 4 ]

68 голосов
/ 23 мая 2013

Из фонового скрипта вы можете прослушать событие chrome.tabs.onUpdated и проверить свойство changeInfo.status в обратном вызове. Это может быть загрузка или полная . Если это завершено , выполните действие.

Пример:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete') {

    // do your things

  }
})

Поскольку это, вероятно, будет срабатывать при каждом завершении вкладки, вы также можете проверить, является ли вкладка active для ее одноименного атрибута , например:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete' && tab.active) {

    // do your things

  }
})
46 голосов
/ 27 июня 2011

Если необходимо запустить событие onload на странице, то есть документ и все его активы загружены, это должно быть в скрипте содержимого , встроенном в каждую страницу, для которой вы хотите отслеживать onload.

38 голосов
/ 27 июня 2011

Вы можете поместить свой скрипт в контент-скрипт, см.

2 голосов
/ 23 августа 2018

Этот код должен сделать это:

manifest.json

   {
      "name": "Alert 'hello world!' on page opening",
      "version": "1.0",
      "manifest_version": 2,
      "content_scripts": [
        {
          "matches": [
            "<all_urls>"
          ],
          "js": ["content.js"]
        }
      ]
    }

content.js

alert('Hello world!')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...