XUL:window vs XFORMS:select1 on Firefox

интернет компьютеры программирование программы ит

Возникла необходимость переделать XHTML/XForms страницу в XUL. Получилось в общем неплохо, но возник баг с select1. После выбора из всплывающего меню блокируется ввод с клавиатуры (даже "горячие клавиши" Firefox). Избавиться от блока можно нажатием клавиши TAB или ALT или выбрав тот же пункт ещё раз. При этом select1 закрашивается, как и полагается при выборе. При оформлении select1 в виде списка или radiogroup ошибка не возникает. Так же нормально работает выбор клавишами (без всплывания меню). Как можно исправить этот баг?
Ответы:
Может это?
         // editable menulists elements aren't in the focus order,
         // so when the popup opens we need to force the focus to the inputField
         // XXX see bug #196755
         // originalTarget is workaround for arrowscrollbox retargeting bug
Нашёл решение.
1)Открыть в Firefox chrome://xforms/content/select-xul.xml
2)Открыть исходный код страницы Ctrl+U и сохранить в файл select-xul.xml
3)Добавить в проект стиль:
@namespace xf url(http://www.w3.org/2002/xforms);
@namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
xf|select1 {-moz-binding: url(адрес_файла#xformswidget-select1-minimal)!important;}
xf|select1 xul|box {-moz-binding: url(адрес_файла#controlwidget-select1-minimal)!important;}
4)После
 <method name="addItemToSelection">
   <parameter name="aItem"/>
     <body>
         this.control.selectedItem = aItem;
В элементе:
 <binding id="controlwidget-select1-minimal   extends="chrome://xforms/content/select.xml#controlwidget-base">
Добавить строку:
 this.control.open = false;
Всё.
PS:В этом файле хранится ещё несколько настроек для select недоступных из других мест. Например количество строк compact select.


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.