fermeture de la fentetre principale du navigateur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fermeture de la fentetre principale du navigateur

par aingaro » 10 oct. 2005, 16:30

Pour appeler du code coté serveur à partir d'une page déjà chargée coté client, viser le code javascript suivant (sous IE) :

Code : Tout sélectionner

var xhr_object = null; xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); // appel à Close.jsp avec methode post coté serveur xhr_object.open("POST", "Close.jsp", false); // envoi de la demande xhr_object.send(null); if(xhr_object.readyState == 4) alert("Requete serveur effectuee !"); else alert("Requete serveur en erreur !");
// Un script est donc executé coté serveur sans que sa réponse ne s'affiche comme une page HTML coté client

par stevelace » 02 oct. 2005, 05:54

Merci Cyrano pour la traduction :lol:

En fait cela ne fonctionne pas non plus parce que la fonction est appelée à chaques clics sur les liens il faut donc dabors créer notre fonction js comme ceci:

Code : Tout sélectionner

var quitter=true; function Avant_de_quitter() { if(quitter == true) { window.open('script.php','quitter','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=300,height=300'); } }

ensuite vous appelez la fonction dans la balise <body>

Code : Tout sélectionner

<body onBeforeUnload="Avant_de_quitter()">

Pour que tout fonctionne bien vous devez ensuite modifier tous les liens de la page comme suit :

Code : Tout sélectionner

<a href="unlien.php" onClick="quitter=false">Lien test</a>

Voila cette méthode est peut-être à travailler mais fonctionne très bien

Salut !

par Cyrano » 01 oct. 2005, 09:14

...et pour faire cute ...
Traduction pour les francophones hors Québec : "...pour faire joli ..."
;)

par stevelace » 01 oct. 2005, 07:55

il ne faut pas appeler la fonction php dans ton onBlur... tu dois appeler une page du genre onBlur="window.open()" tu apelles un fichier php qui exécute ta fonction et pour faire cute tu met un petit message de remerciement :wink:

par okydo » 26 sept. 2005, 16:28

bon j'ai essayer vos astuces. le probleme ce que le script se lance dés que je change de page et pas seulement quand on ferme la fenetre. donc si quelqu'un a une solution merci d'avance
et avec le onblur ca le lance en boucle car quand la pop up apparaitle fenetre principale perd le focus donc le relance en boucle

par lemauvaisoeil » 27 août 2005, 18:35

http://www.editeurjavascript.com/script ... _3_357.php

avec ça tu devrais trouver ton bonheur pour empêcher de fermer la page,
sinon pour l'exécution du php à la fermeture de la page, moi aussi je suis preneur

par Redlox » 20 juil. 2005, 22:19

Bonjour à tous,

Après avoir lu ce sujet et fais quelques test avec IE, le script : <body onblur="confirm('Etes vous sur de vouloir quitter ?');"> fonctionne mais la fenêtre se ferme tout de même :( . En fait je souhaiterais savoir si il est possible, avec IE, de garder la fenêtre ouverte tant que l'utilisateur ne clique pas sur "OK" et que cette dernière reste ouverte si l'utilisateur clic sur "Annuler" ?

J'ai cherché un fonction capable stopper le Unload de la page, je n'ai rien trouvé :( . Peut etre que cette solution n'est pas la bonne.

Si quelqu'un a une idée, Je le remercie d'avance. :D

Redlox

j'ai le même problème

par fsilvia » 04 juil. 2005, 20:00

Bonjour j'ai le même problème.
je dois faire uen operation dans la base MYSQL quand je ferme une session, donc quand l'utilisateur clique sur X en haut de la feneter pour fermer le navigateur ...

Comment as tu fait ?

merci
Silvia

par mili » 14 juin 2005, 17:00

merci je vais essayer la popup alors

par zeus » 14 juin 2005, 16:56

Tu melange le JavaScript et le PHP là

C'est impossible car ils sont exécutés à un moment différents

par Cyrano » 14 juin 2005, 16:56

Forcément : PHP est exécuté coté serveur or JavaScript s'exécute coté client: Tu ne pourras pas faire exécuter ça sauf....., il y aurait une astuce:

Sur ton évènement onblur(), fais ouvrir un pop-up qui contiendra ton code PHP. Ce code sera exécuté et tu feras afficher le message de ton choix en laissant un lien pour fermer le pop-up window.close()

C'est une astuce possible, pas testé, mais à essayer en tous cas.

par mili » 14 juin 2005, 16:48

avec onblur ca marche
mais j'ai un autre souci
je veux faire ca:
function quit(){
<?php
$requete = "delete from identification_locale where login=$var";
mysql_query($requete,$Connexion_testHUMOS2);
?>
}
mais evidemment ca ne marche pas

par patbator » 14 juin 2005, 16:26

Ouich, et en plus le onUnload sur firefox arrive un peu tard, la fenetre se ferme de toutes facons :(

par Cyrano » 14 juin 2005, 16:25

Tu as raison, quoique j'ai fait un petit essai avec onblur et ça fonctionnait avec Firefox... :-k

par patbator » 14 juin 2005, 16:22

hello,

ça serait pas plutot onUnload="return confirm('Yep?');" ?

les evenements blur ont plutot trait au focus il me semble...