Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich ES6-Module in das Inhaltsskript meiner Chrome-Erweiterung laden?

DDD
Freigeben: 2024-11-25 11:55:18
Original
249 Leute haben es durchsucht

How Can I Load ES6 Modules in My Chrome Extension's Content Script?

ES6-Module in ein Inhaltsskript für Chrome-Erweiterung laden

Hintergrund:
Chrome 61 führte Unterstützung für ein JavaScript-Module. Allerdings kann das Laden von Modulen in einem Inhaltsskript für Chrome-Erweiterungen aufgrund der Einschränkungen der Inhaltsskriptumgebung eine Herausforderung darstellen.

Problem:
Sie versuchen, die Import-/Exportsyntax zu verwenden in einem Inhaltsskript, es treten jedoch Syntaxfehler auf.

Lösung:
Es gibt zwei Ansätze zum Laden Module in einem Inhaltsskript:

Asynchrone dynamische import()-Funktion für ES-Module:

  • Deklarieren Sie das Skript, das im Manifest der Erweiterung geladen werden soll, als Web Zugängliche Ressource.
  • Verwenden Sie die Funktion import() im Inhaltsskript, um das Modul währenddessen dynamisch zu importieren Laufzeit.

Beispiel:

(async () => {
  const src = chrome.runtime.getURL("your/content_main.js");
  const contentMain = await import(src);
  contentMain.main();
})();
Nach dem Login kopieren

Synchroner „Import“-Workaround für normale Nicht-Modul-Skripte:

  • Schreiben das Modul als normales Nicht-Modul-Skript.
  • Fügen Sie seinen Namen zum „js“-Array im hinzu Abschnitt „content_scripts“ des Manifests vor dem Hauptinhaltsskript.
  • Greifen Sie direkt im Inhaltsskript auf die Variablen und Funktionen des Moduls zu.

Hinweis:
Der asynchrone dynamische Importansatz ist sicherer und flexibler, kann jedoch vom Servicemitarbeiter der Website blockiert werden. Die synchrone „Import“-Problemumgehung ist weniger robust, aber möglicherweise zuverlässiger.

Das obige ist der detaillierte Inhalt vonWie kann ich ES6-Module in das Inhaltsskript meiner Chrome-Erweiterung laden?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage