Я завжди отримую цю помилку в консолі Chrome.
Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.
Але все працює добре.
Хтось знає, що викликає це, і як я можу це вирішити?
Я завжди отримую цю помилку в консолі Chrome.
Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.
Але все працює добре.
Хтось знає, що викликає це, і як я можу це вирішити?
Відповіді:
Зазвичай причиною є неправильне подовження. У моєму випадку це було "MeasureIt!". Визначити, яке розширення створює проблеми, ви можете будь-який
або
chrome://extensions
background.html
для кожного розширенняНе можна використовувати chrome.tabs
у скриптах із вмістом. Згідно з документацією ,
... скрипти вмісту мають деякі обмеження. Вони не можуть:
- Використовуйте API chrome. * (Крім частин chrome.extension)
- Використовуйте змінні або функції, визначені на сторінках їх розширення
- Використовуйте змінні або функції, визначені веб-сторінками або іншими скриптами вмісту
Отже, ви можете використовувати chrome.tabs
API лише на фонових сторінках чи інших сторінках розширень. Ви можете використовувати повідомлення про розширення, щоб подати запит на використання фонової сторінки chrome.tabs
.
Це спричинено розширенням з використанням 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
:
Розпущений.