"Chrome.tabs tidak didukung ..."

15

Saya selalu mendapatkan kesalahan ini di konsol Chrome.

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

Tapi semuanya bekerja dengan baik.

Adakah yang tahu apa yang menyebabkan ini dan bagaimana saya bisa menyelesaikannya?

8k_of_power
sumber

Jawaban:

36

Biasanya, penyebabnya adalah ekstensi yang nakal. Dalam kasus saya itu adalah "MeasureIt!". Untuk mengidentifikasi, ekstensi mana yang membuat masalah, Anda dapat melakukannya

nonaktifkan mereka satu per satu dan uji

  1. Nonaktifkan semua ekstensi
  2. memastikan kesalahan hilang
  3. aktifkan ekstensi satu per satu
  4. menguji apakah kesalahan muncul kembali, ulangi dari langkah 3

atau

cari kode sumber mereka

  1. Buka chrome://extensions
  2. aktifkan "mode Pengembang" di sudut kanan atas
  3. sekarang Anda dapat membuka background.htmluntuk setiap ekstensi
  4. Ctrl + F, ketik "chrome.tabs" untuk mencari tempat kode yang mencurigakan
  5. berikan umpan balik kepada pembuat ekstensi
geekQ
sumber
8
Bagus sekali :) Adalah 'Measureit!' bagi saya juga ..
Eddie
7

Anda tidak dapat menggunakan chrome.tabsskrip konten. Menurut dokumentasi ,

... skrip konten memiliki beberapa batasan. Mereka tidak bisa:

  • Gunakan chrome. * API (kecuali untuk bagian chrome.extension)
  • Gunakan variabel atau fungsi yang ditentukan oleh halaman ekstensi mereka
  • Gunakan variabel atau fungsi yang ditentukan oleh halaman web atau oleh skrip konten lainnya

Jadi, Anda hanya dapat menggunakan chrome.tabsAPI di halaman latar belakang atau halaman ekstensi lainnya. Anda dapat menggunakan pesan ekstensi yang lewat untuk meminta halaman latar belakang digunakan chrome.tabs.

Pesawat Digital
sumber
Saya tidak mengerti apa yang menggunakan chrome.tabs. Mungkinkah itu salah satu ekstensi Chrome saya?
8k_of_power
3
Ya, kesalahan ini hanya dapat dilemparkan oleh ekstensi Chrome (seperti yang sekarang).
5
Bagi saya, itu MeasureIt! menyebabkan kesalahan.
Justin Bull
@weng Jika Anda masih mendapatkan kesalahan, coba nonaktifkan beberapa ekstensi dalam grup dan lihat apakah kesalahan tersebut dihapus.
Ukur itu! Juga menyebabkan kesalahan ini untuk. Tidak dapat diganggu untuk men-debug kode orang lain jadi saya hanya mendukungnya untuk saat ini.
1

Ini disebabkan oleh ekstensi menggunakan chrome.tabsizin, tetapi tanpa menentukan bahwa manifest.jsonekstensi melakukannya dalam paket dengan ekstensi. Triknya bukan hanya untuk menemukan ekstensi yang digunakan chrome.tabs, tetapi untuk menemukan ekstensi yang melakukannya tanpa mengumumkannya.

Mulai dengan pendekatan yang lebih otomatis (perintah multi-line untuk keterbacaan): On * nix:

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

Di Windows, menggunakan PowerShell:

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

Lalu pergi ke chrome://extensionstab untuk mencocokkan direktori di hasil dengan nama ekstensi, dan klik izin masing-masing untuk melihat siapa yang tidak menggunakan penggunaannya untuk chrome.tabs. Perhatikan bahwa pada baris ke-4 dari cuplikan PowerShell, saya mengindeks '10' karena itulah berapa banyak komponen jalur yang ada dari C:\ke Extensionsdirektori; itu bisa berbeda pada sistem Anda.

Dalam kasus saya, saya sepenuhnya mengotomatiskan pencarian dengan menyambungkan beberapa segmen lagi ke saluran pipa:

$ 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

Sekarang, cari di chrome://extensions:

masukkan deskripsi gambar di sini

Pecah.

masukkan deskripsi gambar di sini

Ben Collins
sumber