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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 !