Есть xul окно, и в нём есть Menulist:

Выделить код

Код:

<menulist .... >
 <menupopup>
   <menuitem label = "empty" />
 </menupopup>
</menulist>

При загрузке страницы, мне надо его заполнить из префов (Там хранится xml-структура, и я вынимаю данные - но это не важно, с этим работает, так как тоже самое работает, но с listbox, а мне надо теперь с menulist)
Какие методы типа appendItem тут нужны? И вообще надо обращаться к всему menulist или именно к menupopup? я на xulplanet так посмотрел, что у menupopup вообще толком методов нету, а повесил тот же скрипт, что работал с listbox- тут не работает =(




Заранее спасибо

Выделить код

Код:

var mi = document. createElement ("menuitem");
mi. setAttribute ("label", "any label");
mp. appendChild (mi); // mp - menupopup

или так:
http://pastebin.mozilla-russia.org/346

эх,точно, забыл про первый вариант.
Спасибо!

А вот проблема с назначением selected.
Мне надо чтоб при открытии окна в список уже был первый элемент. Я ставлю через setAttribute("selected",true) но не работает...

Выделить код

Код:

var m = document. getElementById ("menulistId");
var mi = m. getElementsByTagName ("menuitem");
var found = false;
for (var i = 0; i < mi. length; i++)
    if (mi [i]. label == "...")
    {
        found = true;
        m. selectedItem = mi [i];
        break;
    }
if (!found)
    m. setAttribute ("label", l);

спасибо, теперь получается надо к menulist обращаться

А вот как такой же список очищать?
Пробовал через removeNode, removeChild, пробовал создавать пустой menupopup и через replaceNode, replaceChild (обращаяся к menulist) но чё-то не получилось

Пробовал ... но чё-то не получилось

Что-то я не могу угадать код.

Это: http://www.xulplanet.com/references/ele … ulist.html поможет ?

да, спасибо