"Chrome.tabs는 지원되지 않습니다…"


15

Chrome 콘솔에서 항상이 오류가 발생합니다.

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

그러나 모든 것이 잘 작동합니다.

이 문제의 원인과 해결 방법을 아는 사람이 있습니까?

답변:


36

일반적으로 원인은 잘못된 확장명입니다. 제 경우에는 "MeasureIt!"이었습니다. 어떤 확장 프로그램이 문제를 일으키는 지 식별하려면 다음 중 하나를 수행하십시오.

하나씩 비활성화하고 테스트하십시오.

  1. 모든 확장을 비활성화
  2. 오류가 사라 졌는지 확인
  3. 확장을 하나씩 활성화
  4. 오류가 다시 나타나면 3 단계부터 반복하십시오.

또는

그들의 소스 코드를 검색

  1. 열다 chrome://extensions
  2. 오른쪽 상단에서 "개발자 모드"활성화
  3. 이제 background.html모든 확장에 대해 열 수 있습니다
  4. Ctrl + F, "chrome.tabs"를 입력하여 의심스러운 코드 지점을 검색하십시오.
  5. 확장 프로그램 제작자에게 피드백 제공

8
좋은 것 :) '측정!' 나를 위해 ..
Eddie

7

chrome.tabs컨텐츠 스크립트 에서는 사용할 수 없습니다 . 에 따르면 문서 ,

... 콘텐츠 스크립트에는 몇 가지 제한이 있습니다. 그들은 할 수 없어:

  • chrome. * API 사용 (chrome.extension의 일부 제외)
  • 확장 프로그램의 페이지에 정의 된 변수 또는 함수 사용
  • 웹 페이지 또는 다른 컨텐츠 스크립트로 정의 된 변수 또는 함수 사용

따라서 chrome.tabs백그라운드 페이지 또는 기타 확장 페이지 에서만 API를 사용할 수 있습니다 . 당신이 사용할 수있는 확장 메시지 전달을 배경 페이지를 사용하도록 요청할 수 chrome.tabs.


chrome.tabs를 사용하는 것을 얻지 못했습니다. 내 Chrome 확장 프로그램 중 하나 일 수 있습니까?
8k_of_power

3
예,이 오류는 현재 Chrome 확장 프로그램에서만 발생할 수 있습니다.

5
나를 위해, 그것은 MeasureIt이었다! 오류가 발생했습니다.
Justin Bull

@weng 그래도 오류가 발생하면 그룹에서 일부 확장을 비활성화하고 오류가 제거되었는지 확인하십시오.

그것을 측정하십시오! 또한이 오류가 발생합니다. 다른 사람의 코드를 디버깅하기 위해 귀찮게 할 수 없으므로 지금은 코드와 관련이 있습니다.

1

이는 chrome.tabs권한을 사용하는 확장으로 인해 발생 하지만 manifest.json확장과 함께 패키지로 제공 되는 것을 지정하지 않습니다 . 트릭은을 사용하는 확장명 chrome.tabs을 찾는 것이 아니라이를 알리지 않고 확장명 을 찾는 것입니다.

보다 자동화 된 접근 방식 (가독성을위한 여러 줄 명령)으로 시작하십시오.

$ 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. 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:

여기에 이미지 설명을 입력하십시오

체포.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.