ホームページ > ウェブフロントエンド > jsチュートリアル > ES6 モジュールを Chrome 拡張コンテンツ スクリプトにインポートするにはどうすればよいですか?

ES6 モジュールを Chrome 拡張コンテンツ スクリプトにインポートするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-27 11:36:19
オリジナル
785 人が閲覧しました

How Can I Import ES6 Modules into Chrome Extension Content Scripts?

Chrome 拡張コンテンツ スクリプトで ES6 モジュールをインポートする

問題:

Chrome 63 で、import/ を使用して ES6 モジュールをインポートするコンテンツ スクリプトのエクスポート構文の結果は次のとおりですSyntaxErrors.

原因:

HTML スクリプトとは異なり、コンテンツ スクリプトはモジュールの読み込みをネイティブにサポートしません。

解決策: 非同期動的インポート( ) function

この問題を解決するには、次の回避策:

  1. manifest.json で、モジュール スクリプトを Web アクセス可能なリソースとして宣言します。
  2. content_script.js では、 import() 関数を使用してモジュールを非同期的にロードします。
  3. インポートを待ち、のメイン関数を実行しますmodule.

例:

manifest.json:

{
  "web_accessible_resources": [
    {
      "matches": ["<all_urls>"],
      "resources": ["my-module.js"]
    }
  ],
  ...
}
ログイン後にコピー

content_script.js:

(async () => {
  const src = chrome.runtime.getURL("my-module.js");
  const module = await import(src);
  module.main();
})();
ログイン後にコピー

同期インポートの回避策

または、非モジュール スクリプトの同期インポートの回避策を使用できます。

  1. マニフェストの "js" 配列にスクリプトを追加します。 json.
  2. スクリプトのグローバル変数と関数を直接参照します。メインコンテンツのスクリプト。

以上がES6 モジュールを Chrome 拡張コンテンツ スクリプトにインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート