Extension de Firefox avec script dans le fichier main.js

J’écris une extension pour Firefox et j’ai un problème avec les scripts dans le fichier main.js (background) …

Dans mon cas, j’aimerais inclure par exemple jquery.js et config.js mais je ne vois pas comment le faire correctement.

Dans mon extension chrome, je ne fais que cela sur le fichier manifeste, mais je voudrais l’équivalent dans Firefox.

Merci pour votre aide, jdmry

Pour importer des fichiers, utilisez Components.utils.import .

Vous aurez besoin d’une URL à partir de laquelle importer le fichier. En règle générale, il s’agit d’une URL ressource: // ou chrome: //.

Quelques exemples de bibliothèques fournies par Mozilla:

Components.utils.import("resource://gre/modules/FileUtils.jsm"); //File Utilities Components.utils.import("resource://gre/modules/NetUtil.jsm"); //Network utilities Components.utils.import("resource://gre/modules/Services.jsm"); //Services 

Quelques exemples de chargement depuis votre propre extension:

 Components.utils.import("chrome://myExtensionModule/content/common.jsm"); //Common Components.utils.import("chrome://myExtensionModule/content/classes.jsm"); //Classes 

Pour pouvoir charger à partir de votre propre extension, vous devez avoir les fichiers d’un dossier mappé sur une URL chrome: // ou resource: // dans votre chrome.manifest. Par exemple avec la ligne:

 content myExtensionModule modules/ 

Cela n’a pas besoin d’être séparé du dossier que vous mappez normalement pour le contenu, mais il est courant de conserver les modules JavaScript dans un dossier séparé, juste pour l’organisation. Vous n’avez pas besoin qu’ils utilisent une extension .jsm, encore une fois une convention. Utiliser .js est très bien et peut être souhaitable si vous avez d’autres outils de configuration automatique basés sur une extension .js (par exemple un éditeur).

Vous trouverez beaucoup plus d’informations dans la documentation sur MDN:

  • Modules de code JavaScript
  • Utilisation de modules de code JavaScript
  • Didacticiel du SDK complémentaire: Création de modules réutilisables

Notez que dans le code Firefox, il est courant de créer un mappage sur des variables plus courtes pour accéder à certaines propriétés de Firefox couramment utilisées. Plus précisément, les éléments suivants sont souvent utilisés:

 const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; 

Celles-ci sont généralement définies de manière beaucoup plus abrégée. Ils sont explicitement indiqués ci-dessus pour rendre la cartographie plus claire.