Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

Aller à la page :  1 2

# Boite de dialogue...

Envoyé par : Drazic

Date : 08/03/2006 14:39

Bonjour à tous,

Je cherche à créer une espèce de boîte de dialogue, quelque chose de similaire aux options de firefox (lorsqu'on fait outils->options...).

Le but étant d'afficher un message demandant à l'utilisateur de patienter pendant que mon extension travaille. Comme les options de firefox, je souhaiterais qu'aucune action ne soit possible lorsque cette boîte est ouverte. Je souhaiterais aussi que cette boîte soit impossible à fermer tant que l'extension n'a pas terminé son travail...

Est-ce que c'est possible ? Si oui, que faut-il utiliser ?

Merci d'avance ! Drazic

# Re: Boite de dialogue...

Envoyé par : Julien Appert

Date : 08/03/2006 17:33

Ouvre ta boîte en modal (option de openDialog). Pour interdire sa fermeture, cache le chrome ( dans la balise window ou dialog : hidechrome="true" ).

# Re: Boite de dialogue...

Envoyé par : Drazic

Date : 13/03/2006 13:39

Merci pour ta réponse, désolé de ne pas t'avoir répondu plus rapidement, mais j'ai beaucoup de travail et je n'ai pas eu le temps de m'occuper de ça.

En fait, je me suis penché sur ta réponse, mais j'ai toujours quelques soucis !

Voilà mon code actuellement...

Pour ouvrir la boîte de dialogue :

window.openDialog("chrome://sky2nox/content/sky2noxDialog.xul", "sky2nox", "modal");

Et la page sky2noxDialog.xul :

<?xml version="1.0" encoding="utf-8"?>
<dialog id="s2nDialog" buttons="cancel" buttonpack="center"  ondialogcancel="return s2nLeaveCopy();"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        title="Sky2Nox"
 	hidechrome="true">
<script type="application/x-javascript"   src="chrome://sky2nox/content/sky2nox.js"/>
<label value="yeahhhhhhhhh"/>
</dialog>

Le problème c'est que la boîte de dialogue s'affiche en haut à gauche de l'écran et que le fond est transparent !

Pourrais-tu m'apporter quelques eclaircissement stp ? Merci d'avance ;)

# Re: Boite de dialogue...

Envoyé par : Julien Appert

Date : 13/03/2006 15:04

Certes, le fond est transparent, mais parce que tu as oublié cette ligne :

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

Pour centrer la boite de dialogue, "modal,centerscreen"

Sinon, je viens de tester avec ton code et là, ça bloque parfaitement.

# Re: Boite de dialogue...

Envoyé par : Drazic

Date : 13/03/2006 15:58

Merci beaucoup, ça marche impécable !

# Re: Boite de dialogue...

Envoyé par : Drazic

Date : 13/03/2006 16:06

Juste une dernière question, comment modifier le contenu de ma boîte de dialogue depuis mon fichier .js ?

Par exemple, je voudrais remplacer le bouton "Annuler" par un bouton "Ok" lorsque l'opération est terminée, ou modifier la valeur d'un label que j'ai placé dans ma boite de dialogue. C'est possible ?

Merci d'avance ;)

# Re: Boite de dialogue...

Envoyé par : Julien Appert

Date : 14/03/2006 11:46

Tu devrais changer ta fenêtre dialog en window (openDialog ne fonctionne pas uniquement avec les fenêtres dialog), et faire ton bouton à la main. Comme ça tu pourras le manipuler avec le DOM.

# Re: Boite de dialogue...

Envoyé par : Drazic

Date : 15/03/2006 21:56

Et ce n'est pas possible de manipuler la fenêtre de dialog avec DOM ? De cette façon, il me suffirait de modifier les boutons disponibles, en remplacant le "cancel" par "confirm" non ?

# Re: Boite de dialogue...

Envoyé par : Zéf

Date : 16/03/2006 10:00

Et ce n'est pas possible de manipuler la fenêtre de dialog avec DOM ? De cette façon, il me suffirait de modifier les boutons disponibles, en remplacant le "cancel" par "confirm" non ?

Remplace ton

buttons="cancel"

par

buttons="accept"

Ensuite si tu veux effectuer des traitements avant ouverture pour remplir des champs dynamiquement utilise onload sur le même modèle que ta méthode ondialogcancel.

bonne chance
Z.

# Re: Boite de dialogue...

Envoyé par : Drazic

Date : 16/03/2006 11:23

Merci, mais je voudrais savoir s'il est possible de manipuler une feniêtre de dialogue avec DOM ? Si oui, comment ?

Ou dans le cas où je dois faire une window, est-il possible de bloquer le navigateur, tout comme je le fais avec ma boite de dialogue ?

Merci d'avance ^^

# Re: Boite de dialogue...

Envoyé par : Julien Appert

Date : 16/03/2006 12:23

Pour ce qui est de manipuler les boutons créés par la fenêtre dialog, je n'en sais rien, je n'ai jamais essayé.

Sinon la fenêtre window bloquera le navigateur comme une dialog oui, aucun pb de ce côté là.

# Re: Boite de dialogue...

Envoyé par : laurentj

Date : 16/03/2006 12:54

Drazic : inutile de poser 15 fois la même question. Zef t'as répondu :-p

Quand il te dit "remplacer par", il faut comprendre, avec le DOM (setAttribute).

Donc oui, tu peux modifier une fenetre de dialogue avec le DOM, tant que ta fenetre est définie avec du XML (xul, xhtml...)

# Re: Boite de dialogue...

Envoyé par : Drazic

Date : 16/03/2006 14:59

Voilà, je suis passé à window.open à la place de window.openDialog.

Le problème, c'est que je ne sais toujours pas comment la manipuler avec DOM (d'où les "15 mêmes questions"...).

J'ai essayé de faire un document.getElementById mais cela ne fonctionne pas...

Merci d'avance pour votre aide !

# Re: Boite de dialogue...

Envoyé par : Zéf

Date : 16/03/2006 23:20

Salut,

Il semble que je n'ai pas été assez précis. Quelques compléments pourront peut-être t'éclairer.

Dans le XUL:

<dialog buttons="accept"
       title="Le Titre"
       xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
       onload="myFctInit()">
   <script type="application/x-javascript" src="chrome://myExtension/content/methods.js"/>
       <description id="myExtension-date">00/00/2000</description>
</dialog>

Dans le JS:

function myFctInit() {
 var element_date = document.getElementById('myExtension-date');

 if (element_date)
   element_date.setAttribute('value', theNewDate);
}

Voila, à mon avis si ton getElementById n'a pas fonctionné c'est que tu devais utiliser autre chose que l'attribut "value", ou une autre méthode moins catholique que le setAttribute.

Bon courage,
Z.

# Re: Boite de dialogue...

Envoyé par : Julien Appert

Date : 17/03/2006 09:09

window.open() ? Non, je parlais simplement de remplacer la fenêtre

<dialog>
(...)
</dialog>

par

<window> 
(...)
</window>

Et donc de définir les boutons toi-même, pour qu'ils soient aisément modifiables. Maintenant, peut être que les boutons générés par la fenêtre dialog sont accessibles via le DOM.

Aller à la page :  1 2

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.