Chrome 콘솔에서 항상이 오류가 발생합니다.
Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.
그러나 모든 것이 잘 작동합니다.
이 문제의 원인과 해결 방법을 아는 사람이 있습니까?
Chrome 콘솔에서 항상이 오류가 발생합니다.
Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.
그러나 모든 것이 잘 작동합니다.
이 문제의 원인과 해결 방법을 아는 사람이 있습니까?
답변:
일반적으로 원인은 잘못된 확장명입니다. 제 경우에는 "MeasureIt!"이었습니다. 어떤 확장 프로그램이 문제를 일으키는 지 식별하려면 다음 중 하나를 수행하십시오.
또는
chrome://extensions
background.html
모든 확장에 대해 열 수 있습니다chrome.tabs
컨텐츠 스크립트 에서는 사용할 수 없습니다 . 에 따르면 문서 ,
... 콘텐츠 스크립트에는 몇 가지 제한이 있습니다. 그들은 할 수 없어:
- chrome. * API 사용 (chrome.extension의 일부 제외)
- 확장 프로그램의 페이지에 정의 된 변수 또는 함수 사용
- 웹 페이지 또는 다른 컨텐츠 스크립트로 정의 된 변수 또는 함수 사용
따라서 chrome.tabs
백그라운드 페이지 또는 기타 확장 페이지 에서만 API를 사용할 수 있습니다 . 당신이 사용할 수있는 확장 메시지 전달을 배경 페이지를 사용하도록 요청할 수 chrome.tabs
.
이는 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
:
체포.