设置“隐藏”后,Xul元素不显示

时间:2010-11-12 17:34:48

标签: javascript xul xulrunner xbl

更新

这是一个更简单的示例,显示失败(按“z”后应隐藏img,按“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 bug吗?我用xulrunnet 1.9.2.12运行它。

2 个答案:

答案 0 :(得分:1)

这是Xulrunner 9.0.2.12的一个问题,它适用于9.0.2.10。

答案 1 :(得分:0)

使用 vbox.setAttribute(“hidden”,“true”); 和 vbox.removeAttribute( “隐藏”);