Envoyé par : Utilisateur anonyme
Date : 17/10/2005 17:57
Bonjour à tous, j'essaie de créer des tooltips personnalisés, contenant des blocs multilignes. Pour çà j'ai besoin de modifier par exemple la propriété textContent d'un élément. exemple :
<?xml version="1.0"?> <window pack="center" align="center" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/x-javascript"> <![CDATA[ function myFunction1() { document.getElementById("myLabel_1").value = "this is the modified value"; return true; } function myFunction2() { document.getElementById("myLabel_2").textContent = "this is the modified textContent"; return true; } ]]> </script> <tooltip id="myTooltip_1" onpopupshowing="myFunction1();"> <label id="myLabel_1" value="original Value"/> </tooltip> <button tooltip="myTooltip_1" label="test1 : tooltip avec value dynamique"/> <tooltip id="myTooltip_2" onpopupshowing="myFunction2();"> <label id="myLabel_2">original textContent</label> </tooltip> <button tooltip="myTooltip_2" label="test2 : tooltip avec textContent dynamique"/> </window>
Or pour le premier tooltip (sur le premier bouton), pas de problème l'attribut value est bien modifié et le tooltip est bien affiché.
Par contre, pour le deuxième, le contenu est bien modifié via la propriété textContent (l'inspecteur DOM me le montre), par contre le tooltip n'est pas affiché. Et d'ailleurs le premier n'est alors plus afficher non plus.
En testant via une une adresse chrome, kif kif.
Ce qui m'énerve le plus, c'est qu'un code similaire appliqué via overlay et xbl sur les bookmarks dans le panneau latéral de firefox 1.0.6 fonctionne ! Et ne fonctionne pas sur firefox 1.5 beta2 !! (c'est d'ailleurs ce que je veux corriger)
Je me dis qu'il doit donc avoir moyen d'y parvenir (à modifier ce textContent d'un élément de tooltip), puisque j'ai un cas qui fonctionne. Avez vous une idée de piste de recherche sur laquelle me lancer, petit apprenti xulu perdu que je suis.
Heu, dernière info, j'ai aussi essayé à coup de createTextNode et appendChild sur mon fixhier test, même déconvenue.
Envoyé par : Utilisateur anonyme
Date : 25/10/2005 14:11
J'ai isolé pourquoi le code fonctionnait à travers mes overlays. En fait j'appliquais la valeur true à la propriété hidden du label, je modifiais le textContent, de ce label, puis je remettais hidden à false. Et le tooltip apparait bien, mais seulement sous firefox 1.0.7, çà ne marche plus sous firefox 1.5 beta 2... :(
J'ai ouvert le bug 313266, où sont disponibles les fichiers de test, pour ceux que celà intéressent (vous pouvez y confirmez le bug si vous voulez).
Si quelqu'un à une idée pour contournez ce problème...
Envoyé par : Utilisateur anonyme
Date : 27/10/2005 14:58
Ok, quelqu'un sur mozillazine m'a trouvé une solution pour contournez le problème. Il faut recréer entièrement l'élément via le DOM, pas seulement son textNode, avec createElement et par exemple replaceChild. Le tooltip apparait alors correctement, et les autres aussi. J'ai posé la solution sur le bug que j'ai ouvert.
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.