Bonjour à tous,
voilà deux jours que je planche sur un problème, étant le seul dans ma boîte à avoir des "compétences" de développeur web j'en arrive à l'unique solution de poster un message ici. Bien évidement je n'ai trouvé aucune réponse en cherchant sur le net avant ... alors j'espère que quelqu'un ici saura m'apporter une réponse et me sortir de mon calvaire.

Je vous explique le contexte : dans le cadre de la prochaine refonte du site internet de mon agence, je dois proposer à la fin de la navigation de l'internaute l'ouverture d'une nouvelle fenêtre pour remplir une enquête sur ses usages. Une popup s'ouvre dès l'arrivée de l'internaute sur notre site pour l'avertir qu'à la fin de sa navigation il sera invité à répondre à une enquête.

Pour éviter une pop-up sur chaque chargement de page, j'ai créé un système de cookies.

Mon seul problème c'est pour la redirection à la fin de la navigation vers notre enquête... avant il existait un truc tout simple...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<body onunload="javascript:ouverturePopup();">
... mais ça, c'était avant.

D'où ma première question à la communauté : j'ai l'impression que les dernières versions de navigateur internet n'exécutent plus cet atribut onunload... suis-je dans le vrai ?

Pour palier à ce changement je me sers de Jquerry pour adapter l'attribut onbeforeunload() mais le problème c'est que je n'arrive pas à faire cette maudite redirection après le confirm()

Voici "mon code" actuel :

Code : 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<script LANGUAGE="JavaScript">
 
function ScanCookie(variable)
	{
	cook = document.cookie;
	variable += "=";
	place = cook.indexOf(variable,0);
	if (place <= -1)
		return("0");
	else
		{
		end = cook.indexOf(";",place)
		if (end <= -1)
			return(unescape(cook.substring(place+variable.length,cook.length)));
		else
			return(unescape(cook.substring(place+variable.length,end)));
		}
	}
 
function CreationCookie(nom,valeur,permanent)
	{
	if(permanent)
		{
		dateExp = new Date(2020,11,11);
		dateExp = dateExp.toGMTString();
		ifpermanent = '; expires=' + dateExp + ';';
		}
	else
		ifpermanent = '';
	document.cookie = nom + '=' + escape(valeur) + ifpermanent;
	}
 
if(ScanCookie("dejapopup")==0)
	{
        $(document).ready(function() {	
 
	//Put in the DIV id you want to display
	launchWindow('#dialog2');
 
	//if close button is clicked
	$('.window #close').click(function () {
		$('#mask').hide();
		$('.window').hide();
	});		
 
	//if mask is clicked
	$('#mask').click(function () {
		$(this).hide();
		$('.window').hide();
	});			
 
 
	$(window).resize(function () {
 
 		var box = $('#boxes .window');
 
        //Get the screen height and width
        var maskHeight = $(document).height();
        var maskWidth = $(window).width();
 
        //Set height and width to mask to fill up the whole screen
        $('#mask').css({'width':maskWidth,'height':maskHeight});
 
        //Get the window height and width
        var winH = $(window).height();
        var winW = $(window).width();
 
        //Set the popup window to center
        box.css('top',  winH/2 - box.height()/2);
        box.css('left', winW/2 - box.width()/2);
 
	});	
 
});
 
function launchWindow(id) {
 
		//Get the screen height and width
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
 
		//Set heigth and width to mask to fill up the whole screen
		$('#mask').css({'width':maskWidth,'height':maskHeight});
 
		//transition effect		
		$('#mask').fadeIn(1000);	
		$('#mask').fadeTo("slow",0.8);	
 
		//Get the window height and width
		var winH = $(window).height();
		var winW = $(window).width();
 
		//Set the popup window to center
		$(id).css('top',  winH/2-$(id).height());
		$(id).css('left', winW/2-$(id).width()/2);
 
		//transition effect
		$(id).fadeIn(2000); 
 
 
}
 
 
CreationCookie("dejapopup","oui",false)
 
 
function close() {
        alert('test');
         var leaving = true;
 
       $(function() {
           $('a[rel!=ext]').click(function () { leaving = false; });
           $('form').submit(function () { leaving = false; });
       });
 
       $(function() { window.onbeforeunload = unloadPage; });
 
 
       function unloadPage() {
           if(leaving) {
                confirm("Répondre au questionaire");
                 $(location).attr('href',"http://www.google.fr");
               }
       }
 
}
 
 
 
 
</script>
Merci d'avance pour votre aide

Alexandre.