• User

    Javascript alert

    Salve a tutti, devo riuscire a modificare un altert javascript che ho sul mio sito.

    setTimeout("alert('Benvenuto sul nostro sito');",5000);
    
    

    Vorrei però che quell'alert venisse fuori soltanto la prima volta oppure una volta ogni tot ore.

    E' possibile come cosa?


  • User Attivo

    Il secondo parametro indica 5 secondi, in pratica dopo quando deve essere richiamato il tuo alert. La setTimeout fa si che il tuo timer venga eseguito una sola volta. Invece setInterval fa in modo che il tuo timer venga eseguito piu volte ogni 5 secondi.


  • User Attivo

    Per fare quello che ti serve devi settare un cookie, ora vedo di passarti un codice, ma dato che mi sembri un novizio del JS, cerco di spiegarti bene, così se devi rimetterci mano, riesci in 4 e 4...8!

    
    <script>
    //Dal sito del W3C
    //Nelle due funzioni qui sotto, setti e leggi i coockie
    //Non ti spiego oltre, perchè faccio fatica anche io! XD
    function setCookie(c_name,value,exdays)
    {
    	var exdate=new Date();
    	exdate.setDate(exdate.getDate() + exdays);
    	var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    	document.cookie=c_name + "=" + c_value;
    }
    function getCookie(c_name)
    {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++)
    {
      x=ARRcookies*.substr(0,ARRcookies*.indexOf("="));
      y=ARRcookies*.substr(ARRcookies*.indexOf("=")+1);
      x=x.replace(/^\s+|\s+$/g,"");
      if (x==c_name)
        {
        return unescape(y);
        }
      }
    }
    
    /*
    Questa invece è la funzione exnovo adatta a te
    */
    function alert2()
    {
    	//Controlla che il cookie non sia settato e se non lo è, prosegue dentro l'if
    	if(getCookie('gia_entrato') !== 'si')
    	{
    		setCookie('gia_entrato','si',1);//Setta il cookie a "si" per un giorno
    		setTimeout("alert('Benvenuto sul nostro sito');",5000);//Fa partire l'alert dopo 5 secondi
    	}
    }
    
    document.onLoad = alert2();
    </script>
    
    

    Spero sia ciò che cerchi!