Xpoint
   [напомнить пароль]

Проблема с перетаскиванием toolbaritem

Метки: [без меток]
2007-01-17 18:57:53 [обр] Oleg[досье]
Всем привет.
Я с сделал тулбар:
<toolbar id="nav-toolbar"
              class="chromeclass-directories"
              customizable="true"
              context="toolbar-context-menu"
              iconsize="small"
              defaultset="My toolbaritem"
              toolbarname="My toolbar">
    </toolbar>
В нем toolbaritem содержит несколько лейблов, один из которых получает текст от сервиса при загрузки FireFox. При перетаскивании toolbaritem на другие панели все надписи сохраняются, все работает замечательно. Но при перетаскивании его на Customize Toolbar (та панель, где собраны все кнопки и откуда любую кнопку можно добавить на активную панель) и обратно содержимое лейбла, в который данные поступают от внешнего источника, пропадает. Т.е. например, снчала было "Сегодня погода: " + weather, а после перетаскивания остается лишь "Сегодня погода: ".
Если кто-нибудь сталкивался с подобной проблемой, подскажите,как ее решить плизэ.
Использую FireFox 1.5
спустя 1 минуту [обр] Oleg[досье]
Или хотя бы скажите, какое событие нужно ловить при добавлении новой кнопки на тулбар
спустя 3 часа 28 минут [обр] Владимир Палант(434/4445)[досье]
Дело в том, что есть две копии этой кнопки. Одна расположена на тулбаре, а другая осталась в toolbarpalette. Вот вторую вам и надо поменять, чтобы при переносе кнопки на другой тулбар все было в порядке — при этом создается новая копия. toolbarpalette при загрузке удаляется из документа, получить доступ к нему вы можете через toolbox.palette. А там пройтись по childNodes и найти нужную вам кнопку — использовать getElementById() вы не можете.
спустя 16 часов [обр] Oleg[досье]
Владимир Палант, это все понятно. Вопрос один, в какой момент начать получать доступ к toolbox.palette. По обработке какого события делать это?
спустя 4 часа 15 минут [обр] Владимир Палант(434/4445)[досье]
Ну вы же в какой-то момент меняете label вашей кнопки? Вот тогда и в toolbox.palette заодно меняйте. Я так понимаю, что вы это делаете по событию load окна.
спустя 15 часов [обр] Oleg[досье]
Если не через getElementById(), то как обратиться к toolbox.palette? С помощью getElementByTagName()? Прошу пример. Заранее благодарен.
спустя 1 день 6 часов [обр] Yan[досье]
//Меняем, например, кнопку "Обновить".
document.getElementById('reload-button').setAttribute('label','test');
//меняем копию в palette
var palette=document.getElementById('navigator-toolbox').palette;
for (var i=0;i<palette.childNodes.length;i++){
   if (palette.childNodes[i].getAttribute('id')=='reload-button'){
      palette.childNodes[i].setAttribute('label','test');
      break;
   }
}
спустя 2 дня 20 часов [обр] Oleg[досье]
Yan, спасибо. Владимир Палант, теперь понятно, что вы имели в виду, спасибо.
спустя 27 минут [обр] Oleg[досье]
Почему при перетаскивании button на другие панели, значение его лейбла пропадает, даже если применять к нему вышеописанные алгоритмы? Если перетаскивать label проблем не возникает, но вот кнопка просто таки не хочет отображать текст на соседних панелях. При перетаскивании обратно текст восстанавливается. Некоторые панели, на которые я пробовал перетаскивать кнопку, работают в режиме icons.
Powered by POEM™ Engine Copyright © 2002-2005