Chrome Chrome.tabs không được hỗ trợ


15

Tôi luôn gặp lỗi này trong bảng điều khiển của Chrome.

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

Nhưng mọi thứ hoạt động tốt.

Bất cứ ai cũng biết những gì đang gây ra điều này và làm thế nào tôi có thể giải quyết nó?

Câu trả lời:


36

Thông thường, nguyên nhân là một phần mở rộng sai. Trong trường hợp của tôi, đó là "Số đo!". Để xác định, phần mở rộng nào đang gây rắc rối, bạn có thể

hủy kích hoạt chúng từng cái một và kiểm tra

  1. hủy kích hoạt tất cả các tiện ích mở rộng
  2. đảm bảo lỗi đã biến mất
  3. kích hoạt tiện ích mở rộng từng cái một
  4. kiểm tra nếu lỗi xuất hiện lại, lặp lại từ bước 3

hoặc là

tìm kiếm mã nguồn của họ

  1. mở chrome://extensions
  2. kích hoạt "Chế độ nhà phát triển" ở góc trên bên phải
  3. bây giờ bạn có thể mở background.htmlcho mọi tiện ích mở rộng
  4. Ctrl + F, nhập "chrome.tabs" để tìm kiếm các điểm mã đáng ngờ
  5. gửi phản hồi cho người tạo tiện ích mở rộng

8
Đẹp một :) là 'Đo lường!' đối với tôi cũng vậy ..
Eddie

7

Bạn không thể sử dụng chrome.tabstrong các kịch bản nội dung. Theo tài liệu ,

... kịch bản nội dung có một số hạn chế. Họ không thể:

  • Sử dụng chrome. * API (ngoại trừ các phần của chrome.extension)
  • Sử dụng các biến hoặc hàm được xác định bởi các trang mở rộng của chúng
  • Sử dụng các biến hoặc chức năng được xác định bởi các trang web hoặc bởi các tập lệnh nội dung khác

Vì vậy, bạn chỉ có thể sử dụng chrome.tabsAPI trong các trang nền hoặc các trang mở rộng khác. Bạn có thể sử dụng thông báo mở rộng để yêu cầu sử dụng trang nền chrome.tabs.


Tôi không nhận được những gì đang sử dụng chrome.tabs. Nó có thể là một trong những tiện ích mở rộng trên Chrome của tôi không?
8k_of_power

3
Có, lỗi này chỉ có thể được mở rộng bởi tiện ích mở rộng của Chrome (tính đến thời điểm hiện tại).

5
Đối với tôi, đó là Biện pháp! gây ra lỗi.
Justin Bull

@weng Nếu bạn vẫn gặp lỗi, hãy thử tắt một số tiện ích mở rộng trong nhóm và xem lỗi có được xóa không.

Đo lường! Cũng gây ra lỗi này cho. Không thể bận tâm để gỡ lỗi mã của người khác vì vậy bây giờ tôi chỉ cần chịu đựng nó.

1

Điều này được gây ra bởi một tiện ích mở rộng sử dụng chrome.tabsquyền, nhưng không xác định rằng nó làm như vậy trong manifest.jsongói được mở rộng với tiện ích mở rộng. Bí quyết không chỉ là tìm tiện ích mở rộng sử dụng chrome.tabsmà còn tìm ra tiện ích mở rộng mà không thông báo.

Bắt đầu với một cách tiếp cận tự động hơn (các lệnh nhiều dòng để dễ đọc): Bật * nix:

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

Trên Windows, sử dụng PowerShell:

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

Sau đó, chuyển đến chrome://extensionstab để khớp các thư mục trong kết quả với tên mở rộng và nhấp vào quyền của từng người để xem ai không đối phó với việc sử dụng chúng chrome.tabs. Lưu ý rằng trên dòng thứ 4 của đoạn mã PowerShell, tôi lập chỉ mục '10' vì đó là có bao nhiêu thành phần đường dẫn C:\đến Extensionsthư mục; nó có thể khác trên hệ thống của bạn

Trong trường hợp của tôi, tôi hoàn toàn tự động tìm kiếm bằng cách xử lý thêm một vài phân đoạn vào đường ống dẫn:

$ 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

Bây giờ, nhìn vào chrome://extensions:

nhập mô tả hình ảnh ở đây

Bầm.

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.