2009-06-18 24 views
5

Bir Firefox eklentisinde çalışıyorum ve şu anda bir menupopup elemanına dinamik olarak menuitems eklemem gerekiyor. Temel olarak Mozilla Geliştirici Merkezi'ndeki tüm yaklaşımları denedim ve bunların hiçbiri işe yaramıyor.appendChild bir XUL Firefox eklenti sonları

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

Bu kod appendChild komutunda kırılır. Herhangi bir fikir neden?

+1

bir hata mesajı var mı? – geowa4

+0

createElementNS öğesini kullanmanız gerektiğini düşünmüyorum. Zaten bir XUL belgesi var, bu yüzden createElement varsayılan olarak bir XUL öğesi oluşturmalıdır. – MatrixFrog

+0

@Gryllida evet Etiketleri bir ad alanına, farklı bir ad alanına sahip bir belgeye eklemek ya da daha genel olarak düşünüyorum. – MatrixFrog

cevap

5

document.getElementById ("mainDropdown"), null olmayan bir sonuç döndürüyor% 100 olumlu musunuz?

takip boyunca etmek parçalar halinde parçalayarak dene ve bazı ayıklama kodu ekleyin:

var dropDown = document.getElementById("mainDropdown"); 
if(dropDown) { 
    alert("dropDown found!"); 
    dropDown.appendChild(newMenuItem); 
} 
İlgili konular