"Chrome.tabs не підтримується ..."


15

Я завжди отримую цю помилку в консолі Chrome.

Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.

Але все працює добре.

Хтось знає, що викликає це, і як я можу це вирішити?

Відповіді:


36

Зазвичай причиною є неправильне подовження. У моєму випадку це було "MeasureIt!". Визначити, яке розширення створює проблеми, ви можете будь-який

відключіть їх по черзі та протестуйте

  1. деактивуйте всі розширення
  2. переконайтеся, що помилка зникла
  3. активуйте розширення по черзі
  4. перевірити, чи помилка повториться, повторіть з кроку 3

або

шукати їх вихідний код

  1. відчинено chrome://extensions
  2. активуйте "Режим розробника" у верхньому правому куті
  3. тепер ви можете відкрити background.htmlдля кожного розширення
  4. Ctrl + F, введіть "chrome.tabs" для пошуку підозрілих плям коду
  5. надати відгук розробнику розширень

8
Хороший :) Був "Мірний!" для мене також ..
Едді

7

Не можна використовувати chrome.tabsу скриптах із вмістом. Згідно з документацією ,

... скрипти вмісту мають деякі обмеження. Вони не можуть:

  • Використовуйте API chrome. * (Крім частин chrome.extension)
  • Використовуйте змінні або функції, визначені на сторінках їх розширення
  • Використовуйте змінні або функції, визначені веб-сторінками або іншими скриптами вмісту

Отже, ви можете використовувати chrome.tabsAPI лише на фонових сторінках чи інших сторінках розширень. Ви можете використовувати повідомлення про розширення, щоб подати запит на використання фонової сторінки chrome.tabs.


Я не отримую те, що використовується chrome.tabs. Чи може це бути одне з моїх розширень Chrome?
8k_of_power

3
Так, цю помилку може видалити лише розширення Chrome (на даний момент).

5
Для мене це було MeasureIt! викликаючи помилку.
Джастін Булл

@weng Якщо ви все-таки отримаєте помилку, спробуйте вимкнути деякі розширення в групах і подивитися, чи помилка видалена.

MeasureIt! Також викликає цю помилку для. Не можу налагоджувати налагодження чужого коду, тому я зараз це просто несу.

1

Це спричинено розширенням з використанням chrome.tabsдозволу, але не вказуючи, що це робиться в manifest.jsonупаковці з розширенням. Хитрість полягає не в тому, щоб знайти розширення, яке використовує chrome.tabs, а знайти те, що це робить, не оголошуючи про це.

Почніть з більш автоматизованого підходу (багаторядкові команди для читабельності): On * nix:

$ find . -type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq

У Windows за допомогою PowerShell:

> gci -rec |? {-not $_.PSIsContainer} `
>> | sls 'chrome.tabs' `
>> | select -Unique Path `
>> |% {$_.Path.Split('\')[10] } `
>> | select -Unique
>>

Потім перейдіть на chrome://extensionsвкладку, щоб зіставити каталоги в результатах з іменами розширень, і натисніть на дозволи кожного з них, щоб побачити, хто не працює з їх використанням chrome.tabs. Зауважте, що у 4-му рядку фрагмента PowerShell я індексую "10", оскільки саме так є багато компонентів шляху C:\до Extensionsкаталогу; у вашій системі це може бути інакше.

У моєму випадку я повністю автоматизував пошук, додавши ще пару сегментів до конвеєра:

$ find . type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq \
> | xargs -I % find % -name 'manifest.json' \
> | xargs grep -L tabs
hipbfijinpcgfogaopmgehiegacbhmob/16.0.544_0/manifest.json
hipbfijinpcgfogaopmgehiegacbhmob/17.1_0/manifest.json
hipbfijinpcgfogaopmgehiegacbhmob/18.1_0/manifest.json

Тепер, дивлячись chrome://extensions:

введіть тут опис зображення

Розпущений.

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.