2009-06-18 21 views
5

Sto lavorando su un addon di Firefox e attualmente ho bisogno di aggiungere dinamicamente menuitems a un elemento menupopup. Ho provato praticamente tutti gli approcci su Mozilla Developer Center e nessuno di loro funziona.appendChild in un XUL Firefox addon break

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); 
    } 
} 

Questo codice si interrompe al comando appendChild. Tutte le idee perché?

+1

ottenuto un messaggio di errore? – geowa4

+0

Non penso che sia necessario utilizzare createElementNS. È già un documento XUL, quindi createElement dovrebbe semplicemente creare un elemento XUL per impostazione predefinita. – MatrixFrog

+0

@Gryllida sì Penso di sì, o più in generale, di inserire tag in uno spazio dei nomi, in un documento che ha uno spazio dei nomi diverso. – MatrixFrog

risposta

5

Sei al 100% positivo che document.getElementById ("mainDropdown") restituisce un risultato non nullo?

Prova scomponendola in pezzi, e aggiungere del codice di debug per il follow-lungo:

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