appendChild в XUL Firefox разрывы надстроек - PullRequest
5 голосов
/ 18 июня 2009

Я работаю над дополнением Firefox, и в настоящее время мне нужно динамически добавлять элементы меню в элемент menupopup. Я опробовал в основном все подходы в Центре разработчиков Mozilla, и ни один из них не работает.

    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 Ответ

5 голосов
/ 19 июня 2009

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

Попробуйте разбить его на куски и добавьте отладочный код в продолжение:

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