Fontion Onbeforeunload avec firefox

Bonjour,

J'ai problème avec la fonction onbeforeunload. J'ai créé un site dont la page principale contient des boutons qui peuvent générer un ou plusieurs pop up si l'on clique dessus. Jusque là tout va bien.

Ces pop up affichent des graphiques à partir de fichiers créés dynamiquement à l'ouverture de ces pop up.

Mon soucis est le suivant, lorsque l'utilisateur clique sur la croix je souhaite que le fichier généré soit détruit.

Voici le code javascript qui permet cela (j'utilise de l'ajax pour supprimer les fichiers à l'aide du fichier php "supprimer_indicateur.php") :
Code :

<script type="text/javascript">

function toto()
{
/*Traitement AJAX*/
new Ajax.Request('supprimer_indicateur.php',
{
method:'POST',
parameters: {
NumPage: NumPage,
NumIndic: NumIndic,
},
onSuccess: function(transport){
},
onLoading:function(transport) {
},
onFailure: function()
{
alert("Il y a eu une erreur!");
}
});
//alert("toto2");

}

window.onbeforeunload = function (){toto()};

</script>

Lorsque je décommente alert("toto2") tout va pour le mieux mais je dois valider les message box "toto2". Par contre, si je le laisse tel quel, j'ai un comportement instable. Imaginons que j'ouvre 3 pop ups (donc 3 fichiers générés), à la fermeture il peut me rester un fichier non supprimé...

Une idée sur ce problème?

Merci d'avance,

Ben
Configuration: Windows XP
Firefox 3.0.10

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonsoir,

    C'est à dire?

    J'utilise AJAX depuis peu et je ne connais pas encore tous les rouages de ce code... ;o)

    Merci
    1. hum on dirait que tu utilises la librairie Prototype

      Je ne la connais pas spécialement cependant d'après la doc ceci devrait fonctionner :

      new Ajax.Request('supprimer_indicateur.php', 
      { 
      asynchronous: false ,
      method:'POST', 
      
      ...


      A tester mais sans aucune garantie
  2. Bonjour,

    Well done, ça marche.

    Comportement encore plus étonnant, lorsque je lance mon site sur mon PC de bureau qui est plus puissant que mon portable, il n'est pas nécessaire de remédier au mode synchrone dAJAX....

    Je pense que l'on peut mettre en cause la rapidité d'exécution de la requête AJAX sur un PC ou l'autre.

    En conclusion le mode synchrone pallie ce problème.

    Merci encore, bonne journée!

    Ben