ホームページ  >  記事  >  ウェブフロントエンド  >  Chrome 拡張機能の孤立したコンテンツ スクリプトによって引き起こされる「runtime.lastError」エラーを修正する方法

Chrome 拡張機能の孤立したコンテンツ スクリプトによって引き起こされる「runtime.lastError」エラーを修正する方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-31 15:49:02955ブラウズ

How to Fix

Chrome 拡張機能の更新後の孤立したスクリプトの解決

問題:

Chrome 拡張機能を誤ってリロードした後、「ランタイム. 「lastError」エラーは、「孤立した」コンテンツ スクリプトが原因で発生し、ポップアップ ページとコンテンツ ページ間の通信障害が発生します。

解決策:

この問題に対処するには、次のようにします。ウィンドウ メッセージを利用して、再挿入されたコンテンツ スクリプトから孤立したスクリプトにシグナルをブロードキャストできます。孤立したスクリプトはリスナーの登録を解除し、ガベージ コレクションに使用できるようにします。

実装:

background.js

コンテンツ スクリプトの再挿入を実装します。 extension reload/installation.

content.js

  • chrome.runtime.id を使用して一意の孤立メッセージ ID を生成します。
  • 孤立メッセージ ID イベントをディスパッチして追加しますそれを処理するイベント リスナー。
  • オブジェクト参照を保持するために、名前付き関数を持つすべてのリスナーを登録します。
  • アクティブ コンテンツ スクリプトを示すには、running = true を使用します。

unregisterOrphan 関数

  • 拡張機能がアクティブかどうかを確認します。
  • 孤立したメッセージ リスナーとその他すべてのイベント リスナーを削除します。

onMessage 関数

  • 受信メッセージを処理します。

onMouseMove 関数

  • DOM イベント処理を実行し、処理前に孤立ステータスを確認します。

Popup.js

  • メッセージを送信する前にコンテンツ スクリプトが挿入されていることを確認します。
  • アクティブなコンテンツ スクリプトを確認し、必要に応じてスクリプトを挿入する関数を実装します。

次の手順に従うことで、孤立したコンテンツ スクリプトを削除し、拡張機能のコンポーネント間の通信を復元できます。

以上がChrome 拡張機能の孤立したコンテンツ スクリプトによって引き起こされる「runtime.lastError」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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