Envoyé par : mistervince
Date : 03/08/2007 16:52
bonjour,
J'ai rencontré un problème avec l'affichage de tooltip sur des <checkbox/> générés par rdf.
J'ai aussi trouvé un moyen de contourner et d'obtenir le comportement voulu ;-).
Par contre, si quelqu'un peut m'expliquer pourquoi ça se passe comme ça, je suis preneur !
Template (gestion de blacklist actives ou non) :
<groupbox id="gbLists" datasources="maDatasource" ref="urn:data:blacklists"> <template> <checkbox uri="rdf:*" label="rdf:http://blacklists/rdf#name" checked="rdf:http://blacklists/rdf#isSelected" tooltip="tipBlacklist" listDesc="rdf:http://blacklists/rdf#desc" lastUpdate="rdf:http://blacklists/rdf#lastUpdate"/> </template> </groupbox>
Mon tooltip (description + date de mise à jour) :
<popupset> <tooltip id="tipBlacklist" orient="vertical" onpopupshowing="getBlacklistTipInfos()"> <hbox align="center"> <label value="description :" /> <description id="labelTipDescValue">desc</description> </hbox> <hbox align="center"> <label value="date"/> <label id="labelTipLastUpdateValue"/> </hbox> </tooltip> </popupset>
Pour afficher les infos correctes dans le tooltip, je pensais simplement utiliser la fonction javascript suivante :
function getBlacklistTipInfos() { var blacklist = document.tooltipNode; document.getElementById("labelTipDescValue").textContent = blacklist.getAttribute("listDesc"); document.getElementById("labelTipLastUpdateValue").value = blacklist.getAttribute("lastUpdate"); }
Mais dans ce cas, le tooltip n'apparait plus ! Dans l'inspecteur DOM, la valeur du textnode de la <description/> a la bonne valeur, mais le tooltip ne s'affiche pas. En commentant la ligne changeant le textContent de la description, plus de problème.
En pensant que la modification du texte de la description ne pouvait se faire que sur un élément affiché, j'ai utilisé un timeout pour faire la modification (une fois le tooltip affiché), et là ça marche, même avec un délai de 0ms.
Je donne le code javascript qui marche :
function getBlacklistTipInfos() { var blacklist = document.tooltipNode; document.getElementById("labelTipLastUpdateValue").value = blacklist.getAttribute("lastUpdate"); window.setTimeout("updateDesc()", 0); } function updateDesc() { var blacklist = document.tooltipNode; document.getElementById("labelTipDescValue").textContent = blacklist.getAttribute("listDesc"); }
Toutes les remarques et explications sont les bienvenues...
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.