[Débutant] Les Options...

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
nicoprog
Arias
Messages : 10
Inscription : 19 mai 2004, 16:33

[Débutant] Les Options...

Message par nicoprog »

Je suis en train de créer une extension (ma première), pour l'instant pas trop de problème (ou du moin je les résoud ;)), mais là j'ai un problème dont je n'ai aucune idée de la manière de le résoudre :(

J'ai un bouton dans l'interface de Firefox (overlay) qui doit agir en fonction des options (un fichier XUL séparé)
Les options sont constituées de checkbox avec des ID.
Dans la fonction appelée quand le bouton est pressé j'ai pensé a mettre document.getElementById('IDducheckbox').checked pour récupérer l'état du checkbox, mais malheureusement ça ne marche pas :( (has no properties)

J'aimerai donc avoir votre avis pour que je puisse résoudre ce problème :)
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Tu as essayé d'utiliser l'inspecteur DOM pour afficher toutes les propriétés et méthodes de ton élément ?
nicoprog
Arias
Messages : 10
Inscription : 19 mai 2004, 16:33

Message par nicoprog »

Voici comment je pensais faire :
Dans les options des checkbox avec persist="checked" pour tout sauvegarder automatiquement, et le bouton (overlay dans l'interface de Firefox) va chercher l'info avec document.getElementById, mais voila le problème :
Le bouton n'arrive pas à acceder aux valeur des checkbox :(

J'ai fait quelques test avec une fonctiondu genre :
alert('fonction appelée'); // Pour être sur que la fonction est bien appelée
alert(getElementById('...').checked);

Si cette fonction est déclanchée par un bouton des options, tout ce passe bien, mais si la fonction est appelée par le bouton (overlay), je ne vois que le premier alert de controle, meme si la fenetre des options est ouverte.
(La fonction étant placée dans un fichier externe commun aux deux fichier XUL)


J'aimerai donc savoir si ma méthode est bonne, si oui comment récupérer l'état des checkbox par le bouton en overlay, si non quelle autre technique me permetterai d'arriver au résultat ;)
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

Message par pcdingo »

Ba le pb c'est que document. etc c va aller chercher dans ta fenêtre du navigateur et toi tu veux ce qu'il y a dans la fenêtres des options donc ça va pas trop aller.
Faudrait récupérer la fenêtre par son ID puis aller chercher ce qu'il y a dedans donc du genre

Code : Tout sélectionner

document.getElementById("idfenetre").getElementbyId(id de ton checkbox)...
nicoprog
Arias
Messages : 10
Inscription : 19 mai 2004, 16:33

Message par nicoprog »

je test ça tout de suite ;)

EDIT: Non ça ne marche pas :/

EDIT2: Je n'utilise pas le balise window, mais la balise dialog
pcdingo
Lézard à collerette
Messages : 396
Inscription : 04 avr. 2004, 14:57

Message par pcdingo »

Me semble que ça devrait marcher et comment tu veux dire quoi par ça :

Code : Tout sélectionner

EDIT2: Je n'utilise pas le balise window, mais la balise dialog
Tu ouvres les options avec un openDialog? dans ce cas tu peux facilement atteindre la fenêtre parente (opener) mais le pb c'est que si tu passes par extensions puis Options là ça marchera pas.
Faut à tout prix que le bouton change après la fermeture des options ? ça ne pourrait pas être qq chose qui se déclenche après en fonction des options?
nicoprog
Arias
Messages : 10
Inscription : 19 mai 2004, 16:33

Message par nicoprog »

Les options sont accessibles depuis extenstions > mon extensions > options et j'ai utilisé un dialog pour avoir les boutons Ok et Annuler en bas ;)

Tout ce que je veux faire c'est que l'action du bouton soit modifiable via les options.

En gros dans le fichier script fait doit faire :
if(option1est activée) { faire plein de choses }
else { faire autre choses }
...

Je ne veux pas forcement y arriver avec document.getElementById, c'etait juste la première idée qui m'était venue a l'esprit mais apparement ce n'est pas possible, si vous avez une autre méthode pour arriver a ce que je veux faire, je suis preneur ;)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités