Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Jquery modal con cookies

    Ciao a tutti,
    sto usando "JQuery Modal" (per far apparire un div in sovra-impressione) con abbinati i Cookies solo che lo script che uso io non funziona proprio come vorrei: adesso fin quando non chiudo il browser i cookies funzionano e non mi fanno vedere una seconda volta il div in sovra-impressione ma se chiudo e riavvio il browser si rivede ancora il div in sovra-impressione (solo la prima volta però).

    La mia necessità è che questo div non sia mostrato fin quando l'utente non cancella i cookies dal suo browser e quindi non vorrei che invece riappaia semplicemente quando riapre il browser.

    Mi aiutate a modificare il mio script ? Non sono molto esperto di Javascript (purtroppo) ...

    codice:
    setTimeout('ritardo()', 10000); 
    	function ritardo() { 
    	
    	$(document).ready(function() {	
    	
    	//if the cookie hasLaunch is not set, then show the modal window
    	if (!readCookie('hasLaunch')) {
    		//launch it
    		launchWindow('#dialog2');		
    		//then set the cookie, so next time the modal won't be displaying again.
    		createCookie('hasLaunch', 1, 365);
    	}
    	
    	//if close button is clicked
    	$('.window .close').click(function (e) {
    		//Cancel the link behavior
    		e.preventDefault();
    		
    		$('#mask2').hide();
    		$('.window').hide();
    	});	
    	
    	//if mask is clicked
    	$('#mask2').click(function () {
    		$(this).hide();
    		$('.window').hide();
    	});			
    	
    
    	$(window).resize(function () {
    	 
     		var box = $('#boxes2 .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
            $('#mask2').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 createCookie(name,value,days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }
     
    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }
    
    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
    		$('#mask2').css({'width':maskWidth,'height':maskHeight});
    		
    		//transition effect		
    		$('#mask2').fadeIn(1000);	
    		$('#mask2').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); 
    	
    
    }
    
    }

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Probabilmente perché non setta expires (scadenza del cookie) cioè if days della funzione createCookie non viene eseguito e subentra l'else che imposta la variabile vuota pertanto alla chiusura del browser il cookie viene eliminato
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    mi aiuteresti a correggere lo script in modo che funzioni settando l' expires ?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Anche volendo non posso sono fuori casa per il week end e rispondo dal iPad, metti un alert prima del if per vedere che variabili riceve, oppure togli if e else e imposta una data di scadenza tipo "31/12/2014"
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    ok grazie, non preoccuparti ...

    il problema è che così com'è lo script il cookies funziona solo se faccio il reload della pagina ... se chiudo e riapro il browser il div in sovra-impressione ricompare nuovamente ...

    Non capisco come e dove eventualmente settare correttamente una data di scadenza del cookies ... adesso sembra che non ci sia e che ogni volta che il browser si chiude lo azzeri

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova sostituendo la funzione così
    codice:
     function createCookie(name,value,days) {     if (days) {         var date = new Date();         date.setTime(date.getTime()+(days*24*60*60*1000));         var expires = "; expires="+date.toGMTString();     }     else {var expires = ""; }
       document.cookie = name+"="+value+expires+"; path=/"; }
    Qui ho aggiunto due parentesi {} nel else altrimenti prova questa
    codice:
     function createCookie(name,value,days) {
    var expires = "31/12/2014";   
      document.cookie = name+"="+value+expires+"; path=/"; }
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    ciao ...

    ho provato in tutti e due i modi ma nulla, funziona solo fin quando non chiudo e riavvio il browser...è incredibile!

    Tra l'altro decine e decine di esempi in giro su internet (anche su siti stranieri) funzionano solo fin quando non chiudi il browser, nulla che spieghi bene come fare nel nostro caso (ho usato nostro caso perchè ti stai gentilmente prestando ad aiutarmi - grazie)


  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se non l'hai già fatto studiati questa discussione dove sono spiegati molto bene i cookie
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    ok ho letto ... tutto bene però anche lì c'è il nostro stesso problema ... dopo la chiusura del browser ricomincia tutto da capo!

    uffa ... non trovo nulla, eppure ci deve essere per forza qualcosa che non va altrimenti a cosa serve settare una data di scadenza come anche in questo post viene spiegato di fare ?


  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova e mettere la seconda funzione (quella senza if) in una pagina vuota e vedi cosa imposta nel cookie andando nella sezione cookie del browser
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.