2010-11-29 19 views
3

Je développe une extension Firefox (FF) et j'appelle une fonction quand un bouton particulier sur FF est pressé. Parfois, FF n'est pas capable de trouver ma fonction à partir de mon fichier de script, même s'il est présent. Au lieu de cela, il le recherche dans l'extension du navigateur et génère une erreur.Espace de noms d'extension Mozilla: Comment différencier ma fonction et mes fonctions des autres paquets?

En général, comment utiliser un espace de noms avant ma fonction qui le différenciera clairement des fonctions de peut-être le même nom dans d'autres paquets.

Pour .: Y at-il par exemple quelque chose comme:

<script type="application/javascript" src="chrome://mythird/content/script.js"/> 
<statusbar id="status-bar"> 
    <statusbarpanel id="mythird-statusbarpanel" label="mythird" onclick="chrome://mythird/myalert();"/> 
</statusbar> 

au lieu de simplement:

<statusbarpanel id="mythird-statusbarpanel" label="mythird" onclick="myalert();"/> 

Répondre

3

Vous pouvez utiliser un objet normal comme espace de nommage de vos fonctions. Donner à l'objet le nom de votre extension (qui devrait être unique et génial) et vous devriez être jolie sauver.

Dans votre fichier script:

var gYourExtensionName = {}; 

gYourExtensionName.myalert = function(){/*...*/}; 

et XUL:

<script type="application/javascript" src="chrome://mythird/content/script.js"/> 
<statusbar id="status-bar"> 
    <statusbarpanel id="mythird-statusbarpanel" 
        label="mythird" 
        onclick="gYourExtensionName.myalert()" /> 
</statusbar> 

Vous devriez également lire: Firefox Extensions: Global Namespace Pollution