Envoyé par : gillouz
Date : 26/01/2008 11:41
Bonjour à vous
Je commence un projet PHP / JS /XUL /XBL et la propriété inherits me pose problème.
J'utilise Firefox 2 et 3 apache2 php5 sous linux
je vous met en copie les 3 fichiers que j'utilise et je vous détaillerais mon problème.
1- builder.xml
<?xml version="1.0"?> <bindings xmlns="http://www.mozilla.org/xbl" xmlns:xbl="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <binding id="db_textfield" > <content> <xul:label value="test" /> <xul:textbox xbl:inherits="value"/> </content> <implementation> <field name="test"> 21 </field> <constructor> </constructor> </implementation> </binding> </bindings>
2- builder.css
box.db_textfield { -moz-binding: url('builder.xml#db_textfield'); }
3- Builder.php
header ("Content-type: application/vnd.mozilla.xul+xml; charset=iso-8859-15"); echo '<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <?xml-stylesheet href="builder.css" type="text/css"?> <window id="findfile-window" title="Recherche de fichiers" orient="horizontal" xmlns:xbl="http://www.mozilla.org/xbl" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >'; echo "<toolbox>"; // le champs sur lequel portent mes tests echo '<box id="test" class="db_textfield" value="essai" />'; //ca ca marche la valeur test peut être enregistrée et lue echo '<button label="test value" onclick="alert(document.getElementById(\'test\').test); document.getElementById(\'test\').test=30; "/>'; // ca ca ne marche pas! retourne undefined echo '<button label="test text" onclick=" alert(document.getElementById(\'test\').value); "/>'; echo "</toolbox>"; echo "</window>";
voila pour le code maintenant mon problème. en théorie
<box id="test" class="db_textfield" value="essai" /> devrait passer sa propriété "value" au textbox qui est dans le binding "db_textbox" et effectivement dans ce sens ca marche j'obtiens bien un textbox avec le text "essai" dedans.
mais quand je modifie la propriété "value" de la box "test" l'affichage ne change pas
document.getElementById("test").value="essai2" ne change pas le text dans le textbox
de même
alert ( document.getElementById("test").value ) retourne "undefined"
J'ai probablement raté quelque chose mais il me semblais avoir compris que l'utilisation de xbl:inherits="value" devait lier la propriété "value" du textbox et celle de la box "test"
Pourriez vous éclairer ma lanterne car je pense que vous devez tous savoir utiliser cette propriété inherits depuis longtemps
Merci à vous tous pour votre aide
Envoyé par : Paul Rouget
Date : 28/01/2008 17:54
Normal. Tu confonds ici un attribut XML et un attribut d'un objet JS (noeud DOM). Ne fais pas
.value
mais:
.getAttribute("value")
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.