2009-06-18 9 views
5

Je travaille sur un addon Firefox et j'ai actuellement besoin d'ajouter dynamiquement des menuitems à un élément menupopup. J'ai essayé essentiellement toutes les approches sur le Mozilla Developer Center et aucun d'entre eux ne fonctionne.appendChild dans un addon XUL Firefox pauses

function populateDropdown() { 
    var counter = 0; 
    for (var key in services) { 
     var newMenuItem = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "menuitem"); 
     newMenuItem.setAttribute("label", services[key]['title']) 

     document.getElementById("mainDropdown").appendChild(newMenuItem); 
    } 
} 

Ce code est interrompu à la commande appendChild. Des idées pourquoi?

+1

a obtenu un message d'erreur? – geowa4

+0

Je ne pense pas que vous ayez besoin d'utiliser createElementNS. C'est déjà un document XUL donc createElement devrait simplement créer un élément XUL par défaut. – MatrixFrog

+0

@Gryllida oui Je le pense, ou plus généralement, d'insérer des balises dans un espace de noms, dans un document qui a un espace de noms différent. – MatrixFrog

Répondre

5

Êtes-vous 100% sûr que document.getElementById ("mainDropdown") renvoie un résultat non nul?

Essayez le casser en morceaux et ajouter un code de débogage pour suivre le long:

var dropDown = document.getElementById("mainDropdown"); 
if(dropDown) { 
    alert("dropDown found!"); 
    dropDown.appendChild(newMenuItem); 
} 
Questions connexes