Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 35

Discussione: Chiedo urgente aiuto da un esperto in Javascript

  1. #1
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Exclamation Chiedo urgente aiuto da un esperto in Javascript

    Salve, avrei bisogno di un piccolo aiuto (per voi esperti sarà molto semplice):

    Sto usando lo script Fancybox per creare un disclaimer Entra - Esci, ho usato la modalità 'iframe' per richiamare l'html di questo disclaimer, e fin qui nessun problema.

    Il difficile (molto) adesso è come realizzare un cookie che servirà per non far riapparire la finestra di questo disclaimer per le prossime 24 ore da quando si clicca su Entra.

    Non so se mi sono spiegato abbastanza bene, comunque se ne vedono molti di siti con questo meccanismo... ma purtroppo nn conosco javascript per riuscire a fare tuttò ciò.

    Codice PHP:
    <script type="text/javascript">
    $(function() {
    $(
    "#disclaimer").fancybox({
    'width' : '700',
    'height' : '450',
    'autoSize' : false,
    'padding' : 0,
    'scrollOutside' : false,
    'closeBtn' : false,
    'scrolling' : 'no',
    'modal' : true,
    'transitionIn' : 'none',
    'transitionOut' : 'none',
    'href' : 'disclaimer.html',
    'type' : 'iframe',
    'helpers' : {
    'overlay' : {
    'locked' : false,
    css: { 'background': 'rgba(0, 0, 0, 0.7)' }
    }
    }
    }).
    trigger('click');
    });
    </script>
    Spero tanto di ricevere aiuto. Grazie mille!

  2. #2
    Guest

    Predefinito

    Codice:
    <script>
    // le funzione std per i cookie
    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }
    
    function getCookie(cname) {
        var name = cname + "=";
        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);
            if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
        }
        return "";
    }
    </code>
    
    <code>
    // la logica per non assillare
    ora = new Date().getTime();
    val = getCookie("avvisato");
    if ( val == "" || (ora - parseInt(val))> 86400 * 1000)
    {
        setCookie("avvisato", ora, 1);
        alert("BEEP");
    }

    .....

  3. #3
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Scusa ma... quel codice messo in quel modo non mi aiuta, non si collega in nessun modo a quello che ho scritto io, nn so se va bene, nn so se devo metterlo nel file index.html o nel disclaimer.html
    L'ho scritto che nn mi intendo di java... :(

  4. #4
    Guest

    Predefinito

    devi solo mettere il tuo codice al posto di alert();

  5. #5
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Devo fare così???

    Codice HTML:
    <script type="text/javascript">
    // le funzione std per i cookie
    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }
    
    function getCookie(cname) {
        var name = cname + "=";
        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);
            if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
        }
        return "";
    }
    </code>
    
    <code>
    // la logica per non assillare
    ora = new Date().getTime();
    val = getCookie("avvisato");
    if ( val == "" || (ora - parseInt(val))> 86400 * 1000)
    {
        setCookie("avvisato", ora, 1);
        $(function() {
    	$("#disclaimer").fancybox({
    		'width'				: '700',
    		'height'			: '450',
    		'autoSize'          : false,
    		'padding'           : 0,
    		'scrollOutside'     : false,
    		'closeBtn'          : false,
    		'scrolling'         : 'no',
    		'modal'             : true,
    		'transitionIn'		: 'none',
    		'transitionOut'		: 'none',
    		'href'              : 'disclaimer.html',
    		'type'				: 'iframe',
    		'helpers' : {
                'overlay' : {
                    'locked' : false,
    				css: { 'background': 'rgba(0, 0, 0, 0.7)' }
            }
        }
    	}).trigger('click');
    });
    }
    
    
    </script>
    Perché così non funziona più nulla... :(

  6. #6
    Guest

    Predefinito

    con tag come
    </code>
    <code>

    non puo' funzionare di sicuro, devo scaricare fancybox perchè di solito non lo uso per darti conferma, attendere prego
    Ultima modifica di FormularioDiDrakensang : 20-10-2014 alle ore 16.42.16

  7. #7
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    ho provato anche a togliere i tag CODE, ma niente :(

  8. #8
    Guest

    Predefinito

    intendo che i code sono <script> cmq un attimo di pazienza pls

  9. #9
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Fermo fermo fermo! Funziona! Però il coockie si deve creare quando clicco su Entra:

    Codice HTML:
    <head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="disclaimer.css" charset="utf-8" />
    
    			
    </head>
    
    <body style="margin: 0">
    
    <div id="disclaimerarea">
    
    <div style="position:relative;">
    <form action="index.html" method="post" accept-charset="utf-8">
    <button class="showbutton" onclick="Enter();" type="submit">Entra</button>
    <button class="showbutton" onclick="exit()">Esci</button>
    </form>
    </div>
    </div>
    
    </body>
    Ultima modifica di Devilix : 20-10-2014 alle ore 16.59.25

  10. #10
    Guest

    Predefinito

    se Enter() l'hai definita tu o comunque sai accederci, incolli la parte // la logica per non assilare dentro enter()
    altrimenti bisogna gestire onSubmit() del form
    Ultima modifica di FormularioDiDrakensang : 20-10-2014 alle ore 17.06.18

  11. #11
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Tu cosa mi consigli? Sto cercando la soluzione migliore e più sicura...
    Sto andando per gradi.

  12. #12
    Guest

    Predefinito

    tra enter è submit è la stessa cosa in termini di 'sicurezza'
    quello che puoi cambiare, che qc browser puo gestire in modo leggermente diverso l'evento submit ma comunque nulla di sconvolgente

  13. #13
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Codice HTML:
    <html>
    <head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="disclaimer.css" charset="utf-8" />
    
    <script type="text/javascript">
    	function Entra(){
    	parent.$.fancybox.close();
    	var nomeCookie = 'disclaimer';
    	var valoreCookie = 'ok';
    	var durataCookie = 300;
    	var scadenza = new Date();
    	var adesso = new Date();
    	scadenza.setTime(adesso.getTime() + (parseInt(durataCookie) * 60000));
    	document.cookie = nomeCookie + '=' + escape(valoreCookie) + '; expires=' + scadenza.toGMTString() + '; path=/';
    	}
    </script>
    
    <script>
    	function esci(){
    	//parent.$.fancybox.close();
        parent.location.href = 'http://www.google.com';
    	}
    </script>
    
    </head>
    
    <body style="margin: 0">
    
    <div id="disclaimerarea">
    
    <div style="position:relative;">
    <form action="disclaimer.html" method="post" accept-charset="utf-8">
    <button class="showbutton" onclick="Entra();" type="submit">Entra</button>
    <button class="showbutton" onclick="esci()">Esci</button>
    </form>
    </div>
    </div>
    
    </body>
    </html>
    Ho aggiunto altro codice che ho preso da un sito che fa esattamente ciò che vorrei fare io...

    In questo modo, quando clicco su Entra, viene creato un cookie con scadenza e si chiude fancybox...ok, fin qui va bene.

    Manca però la parte IF, credo, da mettere nella index.html ...cioè: Se esiste NOMECookie, o chiude fancybox, oppure mostra la pagina attuale...un controllo ecco

  14. #14
    Guest

    Predefinito

    hai tutto il necessario nel codice sopra :)

    l'unica info che ti manca è che 'oppure' si dice else

    apparte quello non c'è una gran differenza tra il codice che ti ho dato e quello che hai trovato, spec. nulla di utile

  15. #15
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    eh, allora per favore, come dovrei sistemare questo ELSE? E dove... nella index?

    Così com'è, alla riapertura della index, ritorna il dislaimer...e non deve farlo finchè non scade il cookie....
    Ultima modifica di Devilix : 20-10-2014 alle ore 18.21.56

  16. #16
    Guest

    Predefinito

    dove c'è enter()

    provo a spiegarmi con un esempio

    if ( val == "" || (ora - parseInt(val))> 86400 * 1000) // se il cookie non c'è o contiene una data scaduta
    {
    setCookie("avvisato", ora, 1);
    // e poi mostro l'avviso
    }
    else
    {
    // faccio qs. altro
    // per esempio
    parent.$.fancybox.close();
    // oppure
    location.href = 'un_altra_pagina.htm'; // cambio pagina
    }
    Ultima modifica di FormularioDiDrakensang : 20-10-2014 alle ore 18.23.24

  17. #17
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Ho capito quello che dici, ma il disclaimer.html viene richiamato da fancybox, e lo script fancybox sta nella index.html

    Codice HTML:
    <script type="text/javascript">
    $(function() {
    	$("#disclaimer").fancybox({
    		'width'				: '700',
    		'height'			: '450',
    		'autoSize'          : false,
    		'padding'           : 0,
    		'scrollOutside'     : false,
    		'closeBtn'          : false,
    		'scrolling'         : 'no',
    		'modal'             : true,
    		'transitionIn'		: 'none',
    		'transitionOut'		: 'none',
    		'href'              : 'disclaimer.html',
    		'type'				: 'iframe',
    		'helpers' : {
                'overlay' : {
                    'locked' : false,
    				css: { 'background': 'rgba(0, 0, 0, 0.7)' }
            }
        }
    	}).trigger('click');
    });
    </script>
    Ci sarebbe un modo un qualcosa da aggiungere a questo script in cui controlla, tipo IF, se c'è il cookie (creato da disclaimer.html) e decide se interrompere lo script, o saltarlo...e mostrare la pagina seguente? Insomma, x non far funzionare fancybox in questo caso

  18. #18
    Guest

    Predefinito

    O.o

    Codice:
    <script type="text/javascript">
    val = getCookie("avvisato");
    if (val != "") return; // se il cookie c'è mi fermo qui
    
    // se il cookie non c'è - disclaimer
    $(function() {
    	$("#disclaimer").fancybox({
    		'width'				: '700',
    		'height'			: '450',
    		'autoSize'          : false,
    		'padding'           : 0,
    		'scrollOutside'     : false,
    		'closeBtn'          : false,
    		'scrolling'         : 'no',
    		'modal'             : true,
    		'transitionIn'		: 'none',
    		'transitionOut'		: 'none',
    		'href'              : 'disclaimer.html',
    		'type'				: 'iframe',
    		'helpers' : {
                'overlay' : {
                    'locked' : false,
    				css: { 'background': 'rgba(0, 0, 0, 0.7)' }
            }
        }
    	}).trigger('click');
    });
    
    function getCookie(cname) {
        var name = cname + "=";
        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);
            if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
        }
        return "";
    }
    </script>
    Ultima modifica di FormularioDiDrakensang : 20-10-2014 alle ore 19.22.05

  19. #19
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    mmmm... provo subito!

  20. #20
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Così è messo bene? Perché così non carica più fancybox :(

    Codice HTML:
    <script type="text/javascript">
    val = getCookie("disclaimerok");
    if (val != "" || (ora - parseInt(val))< 86400 * 1000) return;
    
    $(function() {
    	$("#disclaimer").fancybox({
    		'width'				: '700',
    		'height'			: '450',
    		'autoSize'          : false,
    		'padding'           : 0,
    		'scrollOutside'     : false,
    		'closeBtn'          : false,
    		'scrolling'         : 'no',
    		'modal'             : true,
    		'transitionIn'		: 'none',
    		'transitionOut'		: 'none',
    		'href'              : 'disclaimer.html',
    		'type'				: 'iframe',
    		'helpers' : {
                'overlay' : {
                    'locked' : false,
    				css: { 'background': 'rgba(0, 0, 0, 0.7)' }
            }
        }
    	}).trigger('click');
    });
    </script>

  21. #21
    Guest

    Predefinito

    val = getCookie("avvisato");
    if (val != "") return; // se il cookie c'è mi fermo qui

    stavo scrivendo mentre copiavi :)

  22. #22
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Citazione Originalmente inviato da FormularioDiDrakensang Visualizza messaggio
    val = getCookie("avvisato");
    if (val != "") return; // se il cookie c'è mi fermo qui
    ca**... non va ugualmente :(

  23. #23
    Guest

    Predefinito

    hai omesso

    function getCookie(cname) {
    var name = cname + "=";
    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);
    if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
    }
    return "";
    }

    pls prendi di nuovo tt il codice :)

  24. #24
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    Così continua sempre a darmi fancybox.... Non so se sono io che sto sbagliando qualcosa :(
    Se puoi postare il codice completo...te ne sarei grato

    Codice HTML:
    <script type="text/javascript">
    function getCookie(disclaimerok) {
     var name = disclaimerok + "=";
     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);
     if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
     }
     return "";
     }
    
    $(function() {
    	$("#disclaimer").fancybox({
    		'width'				: '700',
    		'height'			: '450',
    		'autoSize'          : false,
    		'padding'           : 0,
    		'scrollOutside'     : false,
    		'closeBtn'          : false,
    		'scrolling'         : 'no',
    		'modal'             : true,
    		'transitionIn'		: 'none',
    		'transitionOut'		: 'none',
    		'href'              : 'disclaimer.html',
    		'type'				: 'iframe',
    		'helpers' : {
                'overlay' : {
                    'locked' : false,
    				css: { 'background': 'rgba(0, 0, 0, 0.7)' }
            }
        }
    	}).trigger('click');
    });
    </script>

  25. #25
    Guest

    Predefinito

    il codice completo è gia' postato
    messaggio 18
    l'avevi solo preso nel 'momento sbagliato'

  26. #26
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    ok, ho riprovato... niente, lo script si interrompe al RETURN e non carica fancybox, con o senza cookie...
    sembra che venga ignorata la sintassi IF... :(

    Hai qualche altra idea?

  27. #27
    Guest

    Predefinito

    l'idea è giusta :) anche se si può fare la stessa cosa in modi diversi

    puoi incollare il link alla pagina in questione ?

  28. #28
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

    Predefinito

    lo sto provando in locale... devo upparlo comunque?

    L'idea sarà anche giusta, però si ferma a return...

  29. #29
    Devilix non è connesso Neofita
    Data registrazione
    16-12-2004
    Messaggi
    19

  30. #30
    Guest

    Predefinito

    prova cosi'

    Codice:
    <script type="text/javascript">
    val = getCookie("avvisato");
    if (val == "") {
    // se il cookie non c'è - disclaimer
    $(function() {
    	$("#disclaimer").fancybox({
    		'width'				: '700',
    		'height'			: '450',
    		'autoSize'          : false,
    		'padding'           : 0,
    		'scrollOutside'     : false,
    		'closeBtn'          : false,
    		'scrolling'         : 'no',
    		'modal'             : true,
    		'transitionIn'		: 'none',
    		'transitionOut'		: 'none',
    		'href'              : 'disclaimer.html',
    		'type'				: 'iframe',
    		'helpers' : {
                'overlay' : {
                    'locked' : false,
    				css: { 'background': 'rgba(0, 0, 0, 0.7)' }
            }
        }
    	}).trigger('click');
    });
    
    }
    
    function getCookie(cname) {
        var name = cname + "=";
        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);
            if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
        }
        return "";
    }
    </script>

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •