Envoyé par : Utilisateur anonyme
Date : 27/07/2005 15:48
Hello,
J'ai une liste déroulante générée par un RDF. J'aurais besoin de selectionner un enregistrement de la liste après l'ouverture du fichier XUL.
J'ai essayé avec une fonction JS qui va me chercher l'index de l'élément à selectionner. Ca marche uniquement si l'utilisateur lance manuellement l'action, par exemple sur un bouton. Mais si la fonction est lancée automatiquement par le navigateur, impossible et pourtant, la fonction est bien executée...
Deuxième test en modifiant mon RDF pour dire si l'enregistrement doit être selectionné ou pas (selected=true|false), pas plus de succès, ca marche toujours pas...
A croire qu'il est impossible de selectionner un enregistrement d'une liste déroulante si celle-ci est construite par rdf...
@+ Stéph
Envoyé par : chBok
Date : 28/07/2005 11:37
Je pense qu'il faudrait que tu nous mettes un extrait de code. Par exemple, comment lances tu la fonction de sélection après l'ouverture de la fenêtre ?
(Pour ta dernière remarque, il faudra que je fasse quelques tests :) )
Envoyé par : Utilisateur anonyme
Date : 28/07/2005 12:04
J'ai continué les recherches de mon côté, et la fonction ci-dessous fonctionne très bien sur une liste "statique" mais absolument pas sur une liste RDF....
Le code ci-dessous ne fonctionne pas si il est appelé après l'ouverture de la page, mais fonctionne si il est appelé depuis un bouton, donc sur l'action d'un utilisateur...
var menuList = document.getElementById(treeData); var noeud = menuList.getElementsByAttribute("value" , 27); menuList.selectedItem = noeud0;
Merci...
@+ Stéph
Envoyé par : chBok
Date : 28/07/2005 14:08
Ok, mais quel est ton code pour l'évènement qui gère l'action en fin de chargement de l'arbre ?
as tu fais un window.onload = fct ? document.eventListener('load', fct) ?
Envoyé par : Utilisateur anonyme
Date : 29/07/2005 10:11
Oui oui, j'ai déjà testé...
Si je fait un window.onload, la fonction est bien appelée mais ne selectionne pas l'enregistrement... De plus on voit bien que la fonction est appelée bien avant le RDF, donc ca peut pas marcher... On a bien essayer de mettre un timeout, sans succèe...
La seule façon que l'on a trouvé pour le moment, c'est que l'utilisateur clique sur un bouton pour executer le script, et la ca marche... On peut pas dire que c'est très ergonomique...
Une autre idée ??
@+ Stéph
Envoyé par : Utilisateur anonyme
Date : 31/07/2005 12:09
je continue les recherches pour pouvoir afficher un élément dans une liste après le chargement RDF... le fait de pouvoir selectionner un enregistrement dans une liste Tree/RDF permet, par exemple de selectionner l'enregistrement que la personne vient de saisir dans un formulaire... c'est la raison pour lequelle je m'archarne sur ce problème...
j'ai essayé d'utiliser XPCOM avec universalXPconnect et de mettre un observer sur le tree... je commence par avoir des problèmes avec universalXPconnect à cause des droits... donc soit je signe mon appli (application Intranet), soit je retire des protections ds le browser ce que j'ai fait mais j'ai toujours des problèmes de droits sur addXMLSinkObserver, donc je n'arrive toujours pas à selectionner un enregistrement automatiquement dans une liste Tree/RDF... est-ce que j'oublie de donné un droit ds firefox, ou bien addXMLSinkObserver ne peut être utilisé qu'en local ou signé ??
@+ stéph
Envoyé par : Moimeme
Date : 01/08/2005 08:19
Essayé comme ca
var oMenuList = document.getElementById('idmenulist'); var oBoxObject = oMenuList.boxObject; var onsIBoxObject = oBoxObject.QueryInterface(Components.interfaces.nsIMenuBoxObject); onsIBoxObject.element.inputField.style.color = "red";
<menulist id="idmenulist" editable="true"/>
appriori ca permet de recuperer le contenu d'un menulist quand il est editable
Peut etre que ca vient du fait qui soit generer par un rdf et donc considerer comme "editable" je dis surement des betises hein si ce le cas veuillez m'excuser ...
Envoyé par : Utilisateur anonyme
Date : 17/08/2005 12:27
je sais pas si c'est c'est ce ki te fo effectivemnt mais essaie:
var menuList = document.getElementById(treeData); menuList.value = "27";
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.