Элемент Xul не отображается после того, как он скрыт

Обновлено

Вот еще более простой пример, показывающий сбой (он должен скрыть изображение после нажатия «z» и показать его после нажатия «x»):

Мой файл test.xul:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet href="chrome://test/content/test.css" type="text/css"?>

<window id="desktop" width="640" height="480"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <image id="img" src="image.png" flex="1"/>

</window>

Мой файл test.css:

#desktop { -moz-binding: url("chrome://test/content/test.xml#desktop"); }

Мой файл test.xml:

<?xml version="1.0"?>

<bindings xmlns="http://www.mozilla.org/xbl"
         xmlns:xbl="http://www.mozilla.org/xbl"
         xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <!-- Desktop binding & Key handlers -->
    <binding id="desktop">
        <handlers>
            <handler event="keypress" key="Z" >
                <![CDATA[
                    var img = getElementById("img");
                    if(img)
                        img.hidden = true;
                ]]>
            </handler>
            <handler event="keypress" key="X" >
                <![CDATA[
                    var img = getElementById("img");
                    if(img)
                        img.hidden = false;
                ]]>
            </handler>
        </handlers>
    </binding>

</bindings>

Он не отображается после скрытого, есть идеи, как это исправить? Это ошибка xulrunner? Я использую xulrunnet 1.9.2.12.


person The Student    schedule 12.11.2010    source источник
comment
Я не уверен, что понимаю, почему вы используете visibility: collapse вместо visibility: hidden   -  person Joel A. Villarreal Bertoldi    schedule 12.11.2010
comment
@ Джоэл Алехандро, поведение здесь такое же.   -  person The Student    schedule 12.11.2010


Ответы (2)


Была проблема с Xulrunner 9.0.2.12, с 9.0.2.10 работает хорошо.

person The Student    schedule 22.11.2010

Используйте vbox.setAttribute("скрытый", "истинный"); и vbox.removeAttribute("скрытый");

person pc1oad1etter    schedule 12.11.2010
comment
Или даже просто vbox.hidden = true , vbox.hidden = false - person MatrixFrog; 13.11.2010
comment
@MatrixFrog В первые дни работы с XUL я много боролся с нюансами между атрибутами и свойствами, в конце концов я почти всегда остановился на использовании атрибутов. Хотя, наверное, ты прав. :-) - person pc1oad1etter; 13.11.2010
comment
Эти вариации приводят к одному и тому же поведению. Я постараюсь сделать здесь простой образец полного приложения и опубликовать его. - person The Student; 17.11.2010