IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Détection fermeture fenêtre / onglet.


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut Détection fermeture fenêtre / onglet.
    Bonjour à tous.

    Je sais que le sujet a été maintes et maintes fois abordé, mais je n'arrive pas à faire ce qu'on me demande : il faut qu'on écrive un fichier a un endroit précis lorsque l'utilisateur ferme l'onglet ou le navigateur.

    Voici ce que j'ai fait :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    	<script type="text/javascript"> 
                    window.addEventListener('beforeunload', function (e) { 
                            EcrireTraceEnCours("FERMETURE DE LA PAGE INDEX.HTML"); 
    //                              e.preventDefault(); 
                            e.returnValue = ''; 
                    }); 
            </script>
    </HTML>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    function EcrireTraceEnCours(P_Module) 
    {
    	$.ajax(
    	{
    		type: "GET",
    		url: "./fichiersXML/data/Parametres.xml",
    		async: false,
    		dataType: "xml",
    		error: function()
    		{
    			alert("ERREUR : Fichier " + xmlFile + " non trouvé !");
    			//writelog(logFile, "ERREUR : Fichier " + xmlFile + " non trouvé !");
    		},
    		success: function(xml)
    		{	
    			$(xml).find('PARAM').each(function()
    			{
    				let type = $(this).find('MODE').text();
    				let sender = $(this).find('SENDER').text();
    				if (type == "fichier" || type == "F")
    				{
    					let G_EnCours = $(this).find('FILEPATHENCOURS').text();
    					let G_MsgLOC = $(this).find('FILEPATHMSG_LOC').text();
    					let emetteurDeb = document.getElementById("debMail").value;
    					let emetteurFin = document.getElementById("finMail").value;
    					if (emetteurDeb != "" && emetteurFin != "")
    					{
    						let WDateID = new Date();
    						let WAn = WDateID.getFullYear();
    						let WMois = WDateID.getMonth() + 1;
    						if (WMois < 10)
    						{
    							WMois = "0" + WMois;
    						}
    						let WJour = WDateID.getDate();
    						if (WJour < 10)
    						{
    							WJour = "0" + WJour;
    						}
    						let WHeure = WDateID.getHours();
    						if (WHeure < 10)
    						{
    							WHeure = "0" + WHeure;
    						}
    						let WMin = WDateID.getMinutes();
    						if (WMin < 10)
    						{
    							WMin = "0" + WMin;
    						}
    						let WSec = WDateID.getSeconds();
    						if (WSec < 10)
    						{
    							WSec = "0" + WSec;
    						}
    						let WDateFicLOG = WAn + "_" + WMois + "_" + WJour;
    						let WHeureFicLOG = WHeure + "h" + WMin + "m" + WSec + "s";
    						let WDateLOG = WDateFicLOG + "_" + WHeureFicLOG;
    						let WNomFic = "JS_MULTIVAC3_";
    						WNomFic = WNomFic + emetteurDeb + "_" + emetteurFin + "_";
    						let WNomFicEnCours = G_EnCours + WNomFic + WDateLOG +".txt";
    						let WNomFicLoc = "";
    						if (P_Module.indexOf("FERMETURE DE LA PAGE") != -1)
    						{
    							WNomFicLoc = G_MsgLOC + WNomFic + P_Module + ".txt";
    						}
    						else
    						{
    							WNomFicLoc = G_MsgLOC + WNomFic + WDateLOG +".txt";
    						}
    						let WTexte = "DEBUT_TRAITEMENT;" + WDateFicLOG + "_" + WHeureFicLOG + "\r\n";
    						WTexte = WTexte + "UTILISATEUR;" + emetteurDeb + "@" + emetteurFin + "\r\n";
    						WTexte = WTexte + "MODULE;" + P_Module + "\r\n";
     
    console.log("G_MsgLOC="+G_MsgLOC);
    console.log("G_EnCours="+G_EnCours);
    console.log("P_Module="+P_Module);
    console.log("emetteurDeb="+emetteurDeb);
    console.log("emetteurFin="+emetteurFin);
    console.log("WNomFicEnCours="+WNomFicEnCours);
    console.log("WNomFicLoc="+WNomFicLoc);
    console.log("WTexte="+WTexte);
     
    						writeFile(WTexte, WNomFicLoc, emetteurDeb, emetteurFin);
    						let WCmd = "cp " + WNomFicLoc + " " + WNomFicEnCours;// Copie du fichier créé dans /mnt/nas03/vista/fredarch/en_cours	
    						sshRun(WCmd);
    					}
    					else
    					{
    						alert("Adresse mail non ou mal renseignée.");
    					}
     
    				};
    			});
    		}
    	});
    }

    La fonction EcrireTraceEnCours fonctionne correctement.
    Les fichiers sont bien créés et copiés comme on le souhaite quand on change de page, mais pas du tout quand on ferme l'onglet et/ou la fenêtre.

    Qu'est-ce que je loupe ?

    Merci d'avance.
    Zeb'...

  2. #2
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    Bonjour tout le monde.

    Je me permets de relancer la discussion car je suis totalement bloqué.
    Malgré tout ce que j'ai trouvé, je n'arrive pas à prendre en compte la fermeture ou le changement de fenêtre.

    Quelqu'un pour m'aider ?

    Merci d'avance.
    Zeb'...

  3. #3
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 319
    Points : 286
    Points
    286
    Par défaut
    J'ai fini par trouver une solution en ajoutant ce code juste avant le >/body>
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    		<script>
                            function Window_onload() {
                                    EcrireTraceEnCours("QSESTAT.HTM", "LOAD");
                            }
                    </script>
    		<script type="text/javascript">
                            window.onbeforeunload = confirmExit;
                            function confirmExit()
                            { 
                                    EcrireTraceEnCours("QSESTAT.HTM", "UNLOAD");
                            //      return 'En fermant, vous risquez de perdre la totalité de vos données. Etes-vous sûr(e) de vouloir quitter ?';
                            }
                    </script>
    Zeb'...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détection fermeture onglet et/ou navigateur
    Par kimlee dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 15/02/2013, 08h58
  2. fermeture fenêtre principale
    Par philobedo dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/07/2006, 10h34
  3. fermeture fenêtre DOS
    Par talkinjive dans le forum Windows
    Réponses: 4
    Dernier message: 22/05/2006, 17h01
  4. [VB6] Fichier excel en lecture seul et détection fermeture
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/05/2006, 11h48
  5. Réponses: 2
    Dernier message: 23/06/2005, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo