Fontion Onbeforeunload avec firefox

Fermé
ben_maury Messages postés 8 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 8 octobre 2009 - 1 juin 2009 à 22:30
ben_maury Messages postés 8 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 8 octobre 2009 - 2 juin 2009 à 10:43
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
A voir également:

3 réponses

PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
1 juin 2009 à 22:39
Bsr

En utilisant une requête AJAX en mode synchrone peut-être ?
0
ben_maury Messages postés 8 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 8 octobre 2009
1 juin 2009 à 23:11
Bonsoir,

C'est à dire?

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

Merci
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
2 juin 2009 à 00:06
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
0
ben_maury Messages postés 8 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 8 octobre 2009
2 juin 2009 à 10:43
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
0