ホームページ >ウェブフロントエンド >jsチュートリアル >コンテンツ スクリプトで Chrome API を使用すると「未定義のプロパティを読み取れません」というメッセージが表示されるのはなぜですか?
コンテンツ スクリプトでの Chrome API へのアクセス: 「未定義のプロパティを読み取れません」エラーの処理
Chrome などの Chrome API 関数を使用しようとしたときコンテンツ スクリプト内の .tabs を使用すると、「未定義のプロパティを読み取れません」というエラーが発生する場合があります。これは、拡張機能のマニフェストに必要な権限が明示的に含まれているにもかかわらず発生します。
コンテンツ スクリプトの制限
コンテンツ スクリプトによる Chrome API 機能へのアクセスが制限されていることを理解することが重要です。主に、
chrome.tabs などの API は、通常、バックグラウンド スクリプト、ポップアップ スクリプト、ブラウザ機能への広範なアクセスを備えたその他のスクリプト タイプ用に予約されています。
解決策: バックグラウンド スクリプトとの通信
コンテンツでは利用できない Chrome API 関数にアクセスするにはスクリプトを使用するには、バックグラウンド スクリプトとの通信を確立する必要があります。これには以下が含まれます。
これを実装する例を次に示します。ソリューション:
コンテンツ スクリプト (myScript.js):
// Send a message to the background script requesting access to chrome.tabs chrome.runtime.sendMessage({ type: "access_tabs" }, response => { // Handle the response from the background script: e.g., display the result });
バックグラウンド スクリプト (background.js):
// Background script intercepts the message from the content script chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.type === "access_tabs") { // Access chrome.tabs API here and send the result back to the sender (content script) sendResponse({ value: chrome.tabs.getCurrent().id }); } });
この通信メカニズムを実装することで、コンテンツ スクリプトの機能を効果的に拡張し、Chrome API にアクセスできます。そうしないと使用できない機能。
以上がコンテンツ スクリプトで Chrome API を使用すると「未定義のプロパティを読み取れません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。