Bonjour,
j'essaie de réaliser des formulaires spécifiques sous Thunderbird. Pour cela, j'utilise XForms.
J'ai réalisé mon modèle et une instance qui me servira de base pour mes données. J’initialise cette instance avec certaines valeurs statiques :
1 2 3 4 5 6 7 8
| <xf:instance id="currentValues-Instance">
<data>
<mail>default</mail>
<value1>Personal</value1>
<value2>Example</value2>
<value3 />
</data>
</xf:instance> |
Cependant, j'aimerais, pour certains champs, récupérer des informations disponible dans les préférences Thunderbird.
Je sais comment accéder à l'information dont j'ai besoin. Par exemple :
Components.classes['@mozilla.org/messenger/account-manager;1'].getService(Components.interfaces.nsIMsgAccountManager).defaultAccount.defaultIdentity.email
Le soucis, c'est que j'aimerais que mon formulaire affiche cette valeur de base (comme n'importe quelle valeur statique). Hors, je n'arrive pas à modifier l'instance en conséquence.
J'ai bien essayé de modifier directement l'instance en JS comme ceci :
1 2 3 4
| var mail = Components.classes['@mozilla.org/messenger/account-manager;1'].getService(Components.interfaces.nsIMsgAccountManager).defaultAccount.defaultIdentity.email;
var instance = document.getElementById('currentValues-Instance');
var address = instance.getElementsByTagName('mail');
address[0].firstChild.nodeValue = mail; |
Mais sans réussite. J'ai également tenté d'appeler du JS en levant une action dans ce style :
1 2 3
| <xf:action ev:event="xforms-ready">
<xf:setvalue ref="instance('currentValues-Instance')/exemptedAddress" value="??"/>
</xf:action> |
Mais il faut forcément un chemin XPath et je ne vois pas comment appeler une méthode JS ou autre.
Avez-vous des idées ? Peut-être existe-il un moyen plus simple de récupérer des éléments interne à Thunderbird qu'en JS ?
Merci par avance pour votre aide !
Partager