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

jQuery Discussion :

Ouverture nouvelle fenêtre à la fermeture d'un onglet


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut Ouverture nouvelle fenêtre à la fermeture d'un onglet
    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.

  2. #2
    Membre éclairé Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Par défaut
    salut
    essaye ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function unloadPage() {
               if(leaving) {
                    confirm("Répondre au questionaire");
                     var url = 'google.fr';
                     window.location.href = 'http://www.developpez.net/';
                   }
           }

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    Bonjour,
    merci pour ta réponse Bourvil mais sans succès, seul le confirm(); marche et tout le reste qui vient après ne s'exécute pas ...

    Du coup, finalement j'ai changé les modalités d'accès à l'enquête pour ne pas perdre de temps et être plus en cohérence avec les usages des internautes.

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

Discussions similaires

  1. .HTA Ouverture nouvelle fenêtre
    Par goro_830 dans le forum VBScript
    Réponses: 3
    Dernier message: 16/06/2015, 15h46
  2. Problème ouverture nouvelle fenêtre
    Par kewti dans le forum Général Java
    Réponses: 2
    Dernier message: 16/06/2014, 16h51
  3. MVVM : Ouverture nouvelle fenêtre
    Par CaptainChoc dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 26/08/2011, 15h28
  4. Ouverture nouvelle fenêtre maximisée / IE
    Par oni13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2011, 18h32
  5. Ouverture nouvelle base et fermeture de l'ancienne...
    Par GuidoBrasletti dans le forum Access
    Réponses: 3
    Dernier message: 24/01/2006, 10h12

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