Skip to content

Recettes ​

Cette page rassemble des fonctionnalités souvent demandées qui, pour des raisons de conception, n’ont pas leur place dans l’interface.

Modules ES6 ​

Les règles ne peuvent pas importer ou exporter de modules ES6 entre elles, mais vous pouvez utiliser des modules depuis Internet, par exemple ainsi :

js
;(async () => {
  const { module } = await import("https://...")
  // your code is here
})()

Chargement des modules comme en version 2.x ​

Depuis la version 3.x, les modules sont mis en cache au premier chargement et ne se mettent à jour que manuellement, depuis la fenêtre de modification du module. Ils ne sont plus chargés dans l’arbre DOM du site, mais intégrés directement au script.

Si vous avez besoin d’un chargement via le DOM ou si un script externe doit être mis à jour souvent, mieux vaut ne pas passer par les modules de l’extension et le charger directement en JS :

js
Promise.allSettled([
  loadScript("https://...js"),
  loadScript("https://...js"),
]).then(() => {
  // your code is here
})

function loadScript(src) {
  return new Promise(function (resolve, reject) {
    const script = document.createElement("script")
    script.src = src
    script.onload = resolve
    script.onerror = reject
    document.head.append(script)
  })
}