firefox:为什么我的状态栏没有变化?

时间:2010-12-13 16:28:01

标签: javascript css firefox-addon

修改 我有一个状态栏,可用于启用和禁用插件。

  <popupset>
  <menupopup id="inlinetransContextMenu" position="end_after">
    <image id="preficon" value="pref" />
    <menuitem id="translator-context-menuitem-preferences"
    label="preferences" onclick="alert('horay')" />
  </menupopup>
</popupset>

<!-- ========================================= -->

1 个答案:

答案 0 :(得分:1)

定义时:

<menupopup id="inlinetransContextMenu" position="end_after">
    <image id="preficon" value="pref" />
    <menuitem id="translator-context-menuitem-preferences"
    label="preferences" onclick="alert('horay')" />
</menupopup>

您的弹出窗口包含两个元素:imagemenuitem。弹出窗口中的项目垂直布局,因此图像位于菜单项上方。

如果您想图像与菜单项关联,则必须采用不同的方式,如documentation中所述: menuitem作为属性image,它应该包含图标的路径。此外,您必须为其显示类menuitem-iconic以显示图标(它是预定义的样式类(可能是XBL绑定)):

  

image
  输入:图片网址
  要在元素上显示的图像的URL。如果此属性为空或遗漏,则不显示图像。图像的位置由dir和orient属性决定。

     

注意:menuitem必须有一类menuitem-iconic才能显示图像。

所以你的定义应该是这样的:

<menupopup id="inlinetransContextMenu" position="end_after">
    <menuitem id="translator-context-menuitem-preferences"
              image="chrome://inlinetrans/skin/pref.png"
              class="menuitem-iconic"
              label="preferences" 
              onclick="alert('horay')" />
</menupopup>

我不明白你的另一个问题:为什么当我试图压制状态栏上的图像时,我的状态栏根本没有变化。 抑制在这种情况下意味着什么?要删除图标吗?还是改变?

<强>更新

您必须将imagelabel设置为属性:

<statusbarpanel id="status-bar-intrans"
   context="inlinetransContextMenu"
   onclick="overlay.clickIcon(event)"
   onmouseover="var elmt=document.getElementById('status-bar-intrans');if ('enabled' == overlay.status) { elmt.tooltipText= 'inlinetrans dalam kondisi aktif';} else { elmt.tooltipText='inlinetrans dalam kondisi tidak aktif'; }">
   image="chrome://youraddon/skin/image.png"
   label="inlinetrans" />

并更改属性image。或者通过src和CSS。这些都在documentation中描述。