Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# XBL - attribut inherits

Envoyé par : cokinou

Date : 18/01/2008 12:13

Bonjour

J'ai une petite question concernant l'attribut inherits dans un XBL.

Savez-vous si il est possible de concaténer une chaine dans la valeur de inherits ?

Exemple :

  • dans mon XBL :
  <binding id="test">
     <content>
        <image xbl:inherits="src=type" />
     <content>
  </binding>
  • dans mon XUL :
  <test type="enfant" />

Je voudrais que la source (src) de l'image soit "enfant.png", donc rajouter ".png" à la fin dans le inherits....

Vous auriez une idée ?

# Re: XBL - attribut inherits

Envoyé par : hhf

Date : 10/03/2008 00:17

non, ce n'est pas possible, il te faut plutot passer par CSS dans ton cas :

<binding id="test">
    <content>
       <image anonid="monimg" xbl:inherits="type" />
    <content>
</binding>

dans le css:

  test image[type="enfant"] {
      list-style-image:url("enfant.png");
  }

sinon, tu as la solution du constructor

 <implementation>
 ....
   <method name="loadImage">
     <parameter name="src"/>
     <body><![CDATA[
      var img =document.getAnonymousElementByAttribute(this, "anonid", "monimg");
      img.setAttribute("src", src);
     ]]></body>
   </method>
   <constructor><![CDATA[
     this.loadImage(this.getAttribute("type")+".png");
   ]]></constructor>
 </implementation

// en faisant quelques tests en plus pour t'assurer que l'attribut est bien renseigné, eventuellement en levant une erreur.

tu peux aussi si tu veux que cette valeur soit modifiable via un element exterieur, posé un handler sur la modification de l'attribut :

 <handlers>
   <handler event="DOMAttrModified"><![CDATA[
     if(event.attrName=="type") this.loadImage(event.newValue);
   ]]></handler>
 </handler>

# Re: XBL - attribut inherits

Envoyé par : cokinou

Date : 17/03/2008 17:32

Bonjour,

Merci de m'avoir répondu... Après quelques recherches je suis arrivé à la même conclusion et vu que je ne voulais pas passer par un CSS (c'était justement le but) j'ai fait la deuxième méthode que tu propose... mais j'avais pas pensé a ajouté un handler dessus.... ca va bientot être chose faite :-D

Grand merci pour ta réponse ;-)

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.