Расширение Chrome: вызов фона при обновлении URL - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь создать расширение автоматического входа для определенных сайтов.

Цель состоит в том, чтобы создать фоновый скрипт, который будет получать обновления каждый раз при изменении URL-адреса активной вкладки.

После многих попыток мне все еще не удается поймать это событие, поэтому я не могу вызвать мой код.

my manifest.json:

{
  "manifest_version": 2,
  "name": "OpenU AutoLogin",
  "description": "",
  "version": "1.0",
  "background": {
    "scripts": [
        "background.js"
    ]
},
  "browser_action": {
   "default_icon": "OUAL48.png"
  },
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js":["OUAL.js"]
    }
  ],
  "permissions": [
    "tabs",
    "activeTab",
    "http://*/*", "https://*/*", "<all_url>", "background"
  ]
}

my background.js: (функция SendScriptIntoActiveTab работает отлично)

    chrome.tabs.onActivated.addListener(function(tabId, changeInfo, tab) {
    SendScriptIntoActiveTab({code:"console.log(changeInfo);"});
 });

 function SendScriptIntoActiveTab(code){
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        chrome.tabs.executeScript(tabs[0].id,code, function(response) {
         });
       });
  }

но, к сожалению, ничего не происходит, когда я бегу из фона.У кого-нибудь есть идеи, почему?

1 Ответ

0 голосов
/ 15 февраля 2019

chrome.tabs.onActivated подпись неверна.Кроме того, вам нужно использовать chrome.tabs.onUpdated для прослушивания изменений URL вкладки.

Из документов:

onAcactive

Запускается, когда активная вкладка в окнеизменения.Обратите внимание, что URL-адрес вкладки может быть не установлен во время запуска этого события, но вы можете прослушивать события onUpdated, чтобы получать уведомления при задании URL-адреса.

Чтобы проверить, активен ли URL-адрес активной вкладкиизменилось:

chrome.tabs.onActivated.addListener(function (activeInfo) {
  chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
    if (activeInfo.tabId === tabId && changeInfo.url) {
       console.log(`URL has changed to ${changeInfo.url}`)
    }
  })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...