2009-06-18 2 views
5

Я работаю над дополнением Firefox, и теперь мне нужно динамически добавлять элементы меню в элемент menupopup. Я пробовал в основном все подходы к Mozilla Developer Center, и никто из них не работает.appendChild в XUL Firefox addon breaks

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

Этот код нарушает команду appendChild. Любые идеи почему?

+1

получил сообщение об ошибке? – geowa4

+0

Я не думаю, что вам нужно использовать createElementNS. Это уже XUL-документ, поэтому createElement по умолчанию должен просто создать элемент XUL. – MatrixFrog

+0

@ Gryllida да, я так думаю или, более того, вставить теги в одном пространстве имен в документ, который имеет другое пространство имен. – MatrixFrog

ответ

5

Вы на 100% уверены, что document.getElementById ("mainDropdown") возвращает ненулевой результат?

Попробуйте разбить его на куски, и добавить некоторые отладки кода для последующего вместе:

var dropDown = document.getElementById("mainDropdown"); 
if(dropDown) { 
    alert("dropDown found!"); 
    dropDown.appendChild(newMenuItem); 
} 
Смежные вопросы