„Chrome.tabs nie jest obsługiwany…”


15

Ten błąd zawsze pojawia się w konsoli Chrome.

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

Ale wszystko działa dobrze.

Czy ktoś wie, co to powoduje i jak mogę to rozwiązać?

Odpowiedzi:


36

Zazwyczaj przyczyną jest źle zachowujące się rozszerzenie. W moim przypadku było to „MeasureIt!”. Aby określić, które rozszerzenie powoduje problemy, możesz:

dezaktywuj je jeden po drugim i testuj

  1. dezaktywuj wszystkie rozszerzenia
  2. upewnij się, że błąd zniknął
  3. aktywuj rozszerzenia jeden po drugim
  4. sprawdź, czy błąd pojawi się ponownie, powtórz od kroku 3

lub

wyszukaj ich kod źródłowy

  1. otwarty chrome://extensions
  2. aktywuj „Tryb programisty” w prawym górnym rogu
  3. teraz możesz otworzyć background.htmldla każdego rozszerzenia
  4. Ctrl + F, wpisz „chrome.tabs”, aby wyszukać podejrzane miejsca w kodzie
  5. przekaż opinię twórcy rozszerzenia

8
Fajny :) Był „Measureit!” dla mnie też ..
Eddie,

7

Nie można używać chrome.tabsw skryptach treści. Zgodnie z dokumentacją ,

... skrypty zawartości mają pewne ograniczenia. Oni nie mogą:

  • Użyj interfejsów API chrome. * (Z wyjątkiem części chrome.extension)
  • Używaj zmiennych lub funkcji zdefiniowanych na stronach ich rozszerzeń
  • Używaj zmiennych lub funkcji zdefiniowanych przez strony internetowe lub inne skrypty treści

Możesz więc używać chrome.tabsinterfejsu API tylko na stronach w tle lub innych stronach z rozszerzeniami. Możesz użyć przekazywania wiadomości rozszerzenia, aby zażądać użycia strony w tle chrome.tabs.


Nie rozumiem, co używa chrome.tabs. Czy to może być jedno z moich rozszerzeń Chrome?
8k_of_power

3
Tak, ten błąd może zostać zgłoszony tylko przez rozszerzenie Chrome (jak na razie).

5
Dla mnie był to MeasureIt! powodując błąd.
Justin Bull

@weng Jeśli nadal występuje błąd, spróbuj wyłączyć niektóre rozszerzenia w grupach i sprawdź, czy błąd został usunięty.

Zmierz to! Powoduje również ten błąd dla. Nie można przejmować się debugowaniem kodu innej osoby, więc na razie sobie z tym radzę.

1

Jest to spowodowane rozszerzeniem używającym chrome.tabsuprawnienia, ale bez określania, że ​​robi to w manifest.jsonpakiecie z rozszerzeniem. Sztuczka polega nie tylko na znalezieniu używanego rozszerzenia chrome.tabs, ale także na znalezieniu takiego, który robi to bez zapowiedzi.

Zacznij od bardziej zautomatyzowanego podejścia (wieloliniowe polecenia dla czytelności): On * nix:

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

W systemie Windows za pomocą programu PowerShell:

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

Następnie przejdź do chrome://extensionszakładki, aby dopasować katalogi w wynikach do nazw rozszerzeń i kliknij uprawnienia każdego z nich, aby zobaczyć, kto nie radzi sobie z ich użyciem chrome.tabs. Zauważ, że w czwartym wierszu fragmentu kodu PowerShell indeksuję „10”, ponieważ tyle elementów ścieżki znajduje C:\się w Extensionskatalogu; może być inaczej w twoim systemie.

W moim przypadku w pełni zautomatyzowałem wyszukiwanie, dołączając jeszcze kilka segmentów do potoku:

$ 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

Teraz patrząc chrome://extensions:

wprowadź opis zdjęcia tutaj

Odpadł

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.