chrome .tabs.executeScript только кажется, что выполняется на активной вкладке - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть следующий код в фоновом режиме. js.

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

        chrome.tabs.executeScript(tabId, {
            file: 'inject.js'
        });

  } // if (changeInfo.status == 'complete') {
});

Но когда я меняю вкладки, ввод. js запускается только на активной вкладке, даже если неактивная вкладка обновляется. В inject. js У меня запущен автоматизированный процесс для определенного веб-сайта, и он просматривает некоторые страницы в поисках определенного c текста. Я хочу, чтобы он продолжал работать на этой вкладке, даже если я открою новую вкладку. Но как только я меняю вкладки, инъекция происходит только на активной вкладке. Я думал, что tab.tabId или tabId будет для вкладки, которая была обновлена, но кажется, что это всегда активная вкладка.

Есть ли способ выяснить, какая вкладка обновлена, чтобы я мог передать правильный tabId для executeScript ?

Вот как выглядит мой манифест:

{
  "name": "Automated test",
  "version": "0.0.1",
  "manifest_version": 2,
  "background": {
    "scripts": [
      "background.js"
    ],
    "persistent": true
  },
  "browser_action": {
    "default_title": "Test"
  },
  "permissions": [
    "https://*/*",
    "http://*/*",
    "tabs",
    "webNavigation"
  ]
}

1 Ответ

0 голосов
/ 19 февраля 2020

Итак, @wOxxOm привел меня к тому, что мне было нужно. Мне действительно нужен контент-скрипт, и причина, по которой я думаю, что я не вижу ожидаемых результатов, заключается в том, что я не смог удалить и повторно добавить свое расширение. Иногда кажется, что он уважает внесенные изменения, но, возможно, когда вы вносите изменения в манифест, вам необходимо удалить и повторно добавить расширение.

После того, как я это сделал, оно корректно работает на неактивной вкладке.

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