Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# empêcher la fermeture de la fenêtre

Envoyé par : demanghonj

Date : 29/11/2006 10:43

Bonjour,

J'utilise firefox pour exécuter mon extension. Je souhaite emêcher la fermeture d'une fenêtre. J'utilise donc pour ca l'evenement "onunload" dans la balise <window>. Quand je clique sur un bouton qui quitte ma fenêtre cela marche mais si je clique sur le croix de fermeture de firefox ma fonction est appelé mais je n'empêche pas la fermeture de ma fenêtre.

Comment faire çà?

merci d'avance

# Re: empêcher la fermeture de la fenêtre

Envoyé par : papy

Date : 29/11/2006 11:07

A quoi ressemble ta fonction apellé lors de l'évènement onunload ?

# Re: empêcher la fermeture de la fenêtre

Envoyé par : papy

Date : 29/11/2006 11:15

Pour empêcher la fenêtre de se fermer il faut utiliser l'évènement onbeforeunload et non l'évènement onunload (ce dernier est apellé quand la décision de fermer la fenêtre à déjà été prise)

La fonction apellée doit retournée une chaine dans le cas ou la fenêtre ne doit pas être fermée, et rien dans le cas contraire (pas null ou autre chose, rien du tout)

exemple :

function beforeunload() {
    if(ask)
        return "Etes vous sur ?";
    else
        return;
}

La chaine est utilisée pour demander une confirmation à l'utilisateur qui a le choix d'annuler la fermeture ou de la valider.

De mon côté j'affecte cette fonction en javascript :

window.onbeforeunload = beforeunload;

mais je pense que tu peux faire pareil sans problème avec l'attribut

<window .... onbeforeunload="return beforeunload();">

Voila, à priori on ne peux pas empecher la fermeture de la fenêtre sans message de confirmation, en tout cas je n'ai pas trouvé comment.

# Re: empêcher la fermeture de la fenêtre

Envoyé par : demanghonj

Date : 29/11/2006 12:24

J'ai fais comme tu m'as dit et aucun appel ne se fait avec cette evenement. Je l'ai mis dans la balise <window> puis dans javascript mais rien.

# Re: empêcher la fermeture de la fenêtre

Envoyé par : papy

Date : 29/11/2006 14:35

Je viens de tester, effectivement cela ne fonctionna pas avec l'attribut, en revanche en javascript pas de problème. Essai avec le code suivant (chez moi ca marche je viens de le faire):

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css" ?>
<window id="mainWindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

   <script>
       function testQuit() {
           return 'Etes vous sur ?';
       }

       window.onbeforeunload = testQuit;
       
   </script>

</window>

P.S : pour le javascript as tu essayé en faisant du copier coller du code de mon précédent post ? Si oui ca ne doit pas fonctionner a cause du test sur la variable ask qui n'est pas definie. C'était pour illustrer la marche à suivre si tu veux demander une validation des fois mais pas tout le temps.

# Re: empêcher la fermeture de la fenêtre

Envoyé par : demanghonj

Date : 29/11/2006 16:00

Merci ca marche.

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.