2010-12-13 26 views
1

éditer J'ai une barre d'état qui peut être utilisée pour activer et désactiver les addons.firefox: pourquoi pas de changement dans ma barre de statut?

<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> 

<!-- ========================================= --> 
+0

Il serait utile que vous puissiez publier une version plus minimale de votre code - juste assez pour que nous puissions voir ce que vous essayez de faire, et déterminer où le problème est. – MatrixFrog

Répondre

1

Lorsque vous définissez:

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

Votre pop-up se compose de deux éléments, un image et un menuitem. Les éléments d'une fenêtre contextuelle sont disposés verticalement pour que l'image soit au-dessus de l'élément de menu.

Si vous voulez associé l'image avec l'élément de menu, vous devez le faire différemment, comme décrit dans le documentation:
A menuitem comme une propriété image qui devrait être le chemin vers l'icône. En outre, vous devez donner il la classe menuitem-iconic pour l'icône pour montrer (il est une classe de style prédéfini (probablement une liaison de XBL)):

image
Type: URL de l'image
L'URL de l'image à apparaître sur l'élément. Si cet attribut est vide ou absent, aucune image n'apparaît. La position de l'image est déterminée par les attributs dir et orient.

Remarque: Le menuitem doit avoir une classe de menuitem-iconic pour que l'image apparaisse.

donc votre définition devrait ressembler à:

<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> 

Je ne comprends pas votre autre problème: pourquoi lorsque je tente de supprimer l'image sur la barre d'état ne change pas du tout ma barre d'état. Qu'est-ce que supprime signifie dans ce contexte? Voulez-vous supprimer l'icône? Ou changer?

Mise à jour:

Vous devez définir image et label comme attributs:

<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" /> 

et changer l'attribut image. Ou via src et CSS. Tout est décrit dans le documentation.

+0

Je veux changer l'icône, je veux dire quand j'ai cliqué sur l'icône, les addons seront inactifs et quand j'ai cliqué à la 2ème fois les addons seront réactiver .. – user495688

+0

@ user495688: Voir ma mise à jour. J'ai déjà répondu à cela dans l'une de vos questions précédentes. Rien n'a changé. Juste essayer de faire exactement comme j'ai écrit et lu attentivement la documentation. Par exemple. il n'est jamais écrit que vous devriez créer un élément d'image à l'intérieur de menuitem. Ce devrait être un attribut dans menuitem. –

+0

@Felix Kling: pourquoi une image et une étiquette ne peuvent pas apparaître dans le navigateur quand je change mon code comme le vôtre? – user495688