ホームページ >ウェブフロントエンド >jsチュートリアル >Chrome 拡張機能の孤立したスクリプトによって引き起こされる通信の問題を解決するにはどうすればよいですか?
Chrome 拡張機能の孤立したスクリプトのトラブルシューティング
Chrome 拡張機能を誤ってリロードした後に回復すると、孤立したスクリプトが発生し、コンテンツ間の通信の問題が発生する可能性がありますスクリプトと拡張機能の他の部分。孤立したスクリプトを削除し、適切な機能を復元する解決策は次のとおりです。
孤立したスクリプトを強制終了する
孤立したコンテンツ スクリプトは、引き続き DOM メッセージを受信できます。ウィンドウ オブジェクトを介して、新しい作業コンテンツ スクリプトからゴースト化されたコンテンツ スクリプトにメッセージを送信します。メッセージを受信したら、孤立したスクリプトは次のことを行う必要があります。
コンテンツ内。 js:
<code class="javascript">var orphanMessageId = chrome.runtime.id + 'orphanCheck'; window.dispatchEvent(new Event(orphanMessageId)); window.addEventListener(orphanMessageId, unregisterOrphan); // ... Register event listeners with named functions to preserve their references function unregisterOrphan() { // ... Unregister listeners and remove global variables }</code>
コンテンツ スクリプト インジェクションの確保
孤立したスクリプトにメッセージが送信されるのを防ぐために、popup.js は、メッセージを送信する前にライブ コンテンツ スクリプトが実行されています:
<code class="javascript">async function sendMessage(data) { const [tab] = await chrome.tabs.query({ active: true, currentWindow: true }); if (await ensureContentScript(tab.id)) { return await chrome.tabs.sendMessage(tab.id, data); } } async function ensureContentScript(tabId) { // ... Check if content script is running and inject it if not }</code>
これらの対策を実装することで、孤立したスクリプトを効果的に削除し、通信の問題を防ぎ、Chrome 拡張機能の機能を復元できます。
以上がChrome 拡張機能の孤立したスクリプトによって引き起こされる通信の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。