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.
Partager