Maison  >  Questions et réponses  >  le corps du texte

Extension Chrome : importer des modules ES6 dans des scripts de contenu

<p>Dans <strong>Chrome 61</strong>, la prise en charge des modules JavaScript a été ajoutée. Maintenant, j'utilise Chrome 63. </p> <p>J'essaie d'utiliser un module dans un script de contenu d'extension Chrome en utilisant la syntaxe <code>import</code>/<code>export</code> </p> <p>Dans<strong><code>manifest.json</code></strong>:</p> <pre class="brush:php;toolbar:false;">"content_scripts": [ { "js": [ "content.js" ], } ]≪/pré> <p>Dans<strong><code>my-script.js</code></strong> (avec <strong><code>content.js</code></strong> même répertoire ):</p> <pre class="brush:php;toolbar:false;">'use strict'; const injectFunction = () => window.alert('bonjour tout le monde'); exporter la fonction d'injection par défaut ;</pre> <p>Dans<strong><code>content.js</code></strong>:</p> <pre class="brush:php;toolbar:false;">'use strict'; importer injectFunction depuis './my-script.js' ; injectFunction();</pre> <p>J'obtiens cette erreur :<strong><code>Erreur de syntaxe non détectée : Identificateur inattendu</code></strong></p> <p>Si je modifie la syntaxe d'importation en <code>import {injectFunction} from './my-script.js';</code> j'obtiens cette erreur : <strong><code>Uncaught SyntaxError : Jeton inattendu {</code></strong>< </p><p>Y a-t-il un problème lors de l'utilisation de cette syntaxe dans <strong><code>content.js</code></strong> dans l'extension Chrome (car en HTML, vous devez utiliser <p> ;code> <script type="module" src="script.js "></code> syntaxe), ou est-ce que je fais quelque chose de mal ? Il semble étrange que Google ignore la prise en charge des extensions. </p></script> </code></p>
P粉141035089P粉141035089392 Il y a quelques jours520

répondre à tous(2)je répondrai

  • P粉739079318

    P粉7390793182023-08-28 14:20:34

    Utilisez la fonction dynamic import()< /code>.

    Contrairement à la solution de contournement dangereuse utilisant l'élément