ホームページ >ウェブフロントエンド >jsチュートリアル >コンテンツ スクリプトで Chrome API を使用するときに発生する「未定義のプロパティを読み取れません」エラーを解決する方法は?

コンテンツ スクリプトで Chrome API を使用するときに発生する「未定義のプロパティを読み取れません」エラーを解決する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-21 05:37:10152ブラウズ

How to Solve

コンテンツ スクリプトの Chrome API で「未定義のプロパティを読み取れません」エラー

Chrome 拡張機能は、多くの場合、コンテンツ スクリプトを使用して Web ページに JavaScript を挿入します。 。これらのコンテンツ スクリプト内で chrome.tabs などの Chrome API にアクセスしようとすると、一般的な問題が 1 つ発生します。

「未定義のプロパティ 'name' を読み取れません」というエラーは、API がコンテンツで使用できないことを示しますスクリプトコンテキスト。これは、バックグラウンド スクリプトやポップアップ スクリプトなどの他のスクリプト タイプと比較して、コンテンツ スクリプトは Chrome API へのアクセスが制限されているためです。

原因:

コンテンツ スクリプトはサンドボックス化されており、 chrome.i18n、chrome.dom、chrome.storage、およびそのサブセットを含む特定の API セットへのアクセスchrome.runtime/chrome.extension.

解決策:

コンテンツ スクリプト内の chrome.tabs などの制限された Chrome API にアクセスするには、メッセージ パッシングを使用して通信できます。適切なスクリプト タイプ (例: バックグラウンド)

実装:

  1. コンテンツ スクリプトからバックグラウンド スクリプト、ポップアップ スクリプト、または Service Worker (MV3 の場合) にメッセージを渡します。
  1. 受信者でメッセージを処理しますscript.
  1. 適切なスクリプトで API を使用し、結果をコンテンツ スクリプトに返します。

次の手順に従うことで、メッセージ パッシングを通じて、より特権のあるスクリプト タイプにリクエストを委任することで、コンテンツ スクリプトでは使用できない Chrome API。

以上がコンテンツ スクリプトで Chrome API を使用するときに発生する「未定義のプロパティを読み取れません」エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。