このエラーは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の一部を除く)
- 拡張機能のページで定義された変数または関数を使用します
- Webページまたは他のコンテンツスクリプトによって定義された変数または関数を使用する
したがって、chrome.tabs
バックグラウンドページまたは他の拡張ページでのみAPIを使用できます。拡張メッセージパッシングを使用して、バックグラウンドページでの使用を要求できますchrome.tabs
。
これは、chrome.tabs
アクセス許可を使用する拡張機能によって発生しますが、拡張機能manifest.json
と共にパッケージ化されている場合は指定しません。トリックは、を使用する拡張機能を見つけることだけでchrome.tabs
なく、通知せずに使用する拡張機能を見つけることです。
より自動化されたアプローチ(読みやすさのための複数行コマンド)から始めます。* nixの場合:
$ 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スニペットの4行目では、「10」というインデックスが付けられていることに注意してください。これは、そこからディレクトリC:\
へのパスコンポーネントの数だからExtensions
です。システムによって異なる場合があります。
私の場合、パイプラインにさらに2、3のセグメントを追加して、検索を完全に自動化しました。
$ 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
:
逮捕。