2009-06-18 14 views
5

Estoy trabajando en un complemento de Firefox y actualmente necesito agregar dinámicamente elementos de menú a un elemento menupopup. Intenté básicamente todos los enfoques en el Mozilla Developer Center y ninguno de ellos funciona.appendChild en un XUL complemento de Firefox rompe

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

Este código se rompe en el comando appendChild. ¿Alguna idea de por qué?

+1

tiene un mensaje de error? – geowa4

+0

No creo que necesite usar createElementNS. Ya es un documento XUL, por lo que createElement solo debe crear un elemento XUL de forma predeterminada. – MatrixFrog

+0

@Gryllida sí Creo que sí, o más generalmente, para insertar etiquetas en un espacio de nombre, en un documento que tiene un espacio de nombres diferente. – MatrixFrog

Respuesta

5

¿Está 100% seguro de que document.getElementById ("mainDropdown") está devolviendo un resultado no nulo?

Pruebe lo descomponen en pedazos, y añadir algo de código de depuración para dar seguimiento a lo largo de:

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