“Chrome.tabs desteklenmiyor…”


15

Bu hatayı her zaman Chrome'un konsolunda alıyorum.

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

Ama her şey yolunda gidiyor.

Buna neyin sebep olduğunu ve nasıl çözebileceğimi bilen var mı?

Yanıtlar:


36

Tipik olarak, nedeni yanlış davranan bir uzantıdır. Benim durumumda "MeasureIt!" Hangi uzantının sorun çıkardığını belirlemek için,

bunları tek tek devre dışı bırakın ve test edin

  1. tüm uzantıları devre dışı bırak
  2. hatanın gittiğinden emin olun
  3. uzantıları tek tek etkinleştir
  4. hatanın tekrar ortaya çıkıp çıkmadığını test edin, 3. adımdan itibaren tekrarlayın

veya

kaynak kodlarını ara

  1. açık chrome://extensions
  2. sağ üst köşedeki "Geliştirici modunu" etkinleştir
  3. şimdi background.htmlher uzantı için açabilirsiniz
  4. Ctrl + F, şüpheli kod noktalarını aramak için "chrome.tabs" yazın
  5. uzantı oluşturucuya geri bildirimde bulunun

8
İyi bir :) :) 'Measureit!' benim için de ..
Eddie

7

chrome.tabsİçerik komut dosyalarında kullanamazsınız . Belgelere göre ,

... içerik komut dosyalarının bazı sınırlamaları vardır. Yapamazlar:

  • Chrome. * API'lerini kullanın (chrome.extension bölümleri hariç)
  • Uzantılarının sayfaları tarafından tanımlanan değişkenleri veya işlevleri kullanın
  • Web sayfaları veya diğer içerik komut dosyaları tarafından tanımlanan değişkenleri veya işlevleri kullanma

Dolayısıyla, chrome.tabsAPI'yı yalnızca arka plan sayfalarında veya diğer uzantı sayfalarında kullanabilirsiniz. Arka plan sayfasının kullanılmasını istemek için uzantı iletisini kullanabilirsiniz chrome.tabs.


Chrome.tabs kullanan şeyi anlamıyorum. Chrome uzantılarımdan biri olabilir mi?
8k_of_power

3
Evet, bu hata yalnızca bir Chrome uzantısı tarafından atılabilir (şu andan itibaren).

5
Benim için, MeasureIt! hataya neden olur.
Justin Bull

@weng Hatayı hala alıyorsanız, gruplardaki bazı uzantıları devre dışı bırakmayı deneyin ve hatanın kaldırılıp kaldırılmadığına bakın.

Onu ölçmek! Ayrıca bu hataya neden oluyor. Başka birinin kodunda hata ayıklamak için rahatsız olamaz, bu yüzden sadece şimdilik onunla taşıyorum.

1

Bu, chrome.tabsizin kullanan bir uzantıdan kaynaklanır , ancak bunu manifest.jsonuzantı ile birlikte paketlenmiş olarak belirtmeden . İşin püf noktası sadece kullanılan uzantıyı bulmakla chrome.tabskalmayıp, bunu duyurmadan yapan uzantıyı bulmaktır.

Daha otomatik bir yaklaşımla başlayın (okunabilirlik için çok satırlı komutlar): Açık * nix:

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

Windows'ta, PowerShell kullanarak:

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

Ardındanchrome://extensions , sonuçlardaki dizinleri uzantı adlarıyla eşleştirmek için sekmeye gidin ve kullanımlarının kiminle uyuşmadığını görmek için her birinin izinlerini tıklayın chrome.tabs. Not o PowerShell 4 kısası, indeks '10' pasajı andan itibaren kaç yol bileşenleri o yıllardan çünkü C:\hiç Extensionsdizinde; sisteminizde farklı olabilir.

Benim durumumda, boru hattına birkaç bölüm daha takarak aramayı tamamen otomatikleştirdim:

$ 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

Şimdi, içine bakıyorum chrome://extensions:

resim açıklamasını buraya girin

Paçayı ele vermek.

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.