Heim > Web-Frontend > js-Tutorial > Wie kann ich ES6-Module in Inhaltsskripts für Chrome-Erweiterungen importieren?

Wie kann ich ES6-Module in Inhaltsskripts für Chrome-Erweiterungen importieren?

Barbara Streisand
Freigeben: 2024-11-27 11:36:19
Original
798 Leute haben es durchsucht

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

ES6-Module in Inhaltsskripts der Chrome-Erweiterung importieren

Problem:

In Chrome 63 werden ES6-Module mit import/ importiert. Exportsyntax in Inhaltsskripten führt zu Syntaxfehler.

Ursache:

Im Gegensatz zu HTML-Skripten unterstützen Inhaltsskripte das Laden von Modulen nicht nativ.

Lösung: Asynchroner dynamischer Import( )-Funktion

Um dieses Problem zu beheben, verwenden Sie Folgendes Problemumgehung:

  1. Deklarieren Sie in manifest.json Ihr Modulskript als über das Internet zugängliche Ressource.
  2. In content_script.js verwenden Sie die Funktion import(), um Ihr Modul asynchron zu laden.
  3. Warten Sie auf den Import und führen Sie die Hauptfunktion Ihres Moduls aus Modul.

Beispiel:

manifest.json:

{
  "web_accessible_resources": [
    {
      "matches": ["<all_urls>"],
      "resources": ["my-module.js"]
    }
  ],
  ...
}
Nach dem Login kopieren

content_script.js :

(async () => {
  const src = chrome.runtime.getURL("my-module.js");
  const module = await import(src);
  module.main();
})();
Nach dem Login kopieren

Synchron Problemumgehung für den Import

Alternativ können Sie eine Problemumgehung für den synchronen Import für Nicht-Modul-Skripte verwenden:

  1. Fügen Sie das Skript zum „js“-Array im Manifest hinzu. json.
  2. Referenzieren Sie direkt in Ihrem Hauptinhalt auf die globalen Variablen und Funktionen des Skripts Skript.

Das obige ist der detaillierte Inhalt vonWie kann ich ES6-Module in Inhaltsskripts für Chrome-Erweiterungen importieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage