Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Utilisation de inherits

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

# Re: Utilisation de inherits

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.