Salve a tutti, premetto che mi sono da poco avvicinato allo studio del codice javascript.
Spinto dalla necessità ho voluto provare a realizzare il famoso banner per la cookie law da solo, senza ricorrere agli script che si trovano a giro.
Il codice da me elaborato è questo:
In pratica ho creato un banner, servendomi di un div Finestra2, e inserendo all'interno il testo e un pulsante di accettazione.codice:// carico il codice contenente le funzioni per lettura e scrittura cookie <script src="codice.js"></script> <script language="javascript"> //creo funzione che scrive il cookie e nasconde il div function nascondi() { scriviCookie('ConsensoCookie','ok',60); document.getElementById("Finestra2").style.display="none"; } //leggo il cookie e se presente nascondo il div var nome = leggiCookie('ConsensoCookie'); if (nome=="ok") { document.getElementById("Finestra2").style.display="none"; } </script> // creo il banner di avvsio e consenso <div id="Finestra2"> <br /> <p class="Finestra2">Questo sito utiliza cookie anche di terze parti.<br /> Continuando la navigazione accetti il loro uso.<br /> Per maggiori informazioni puoi consultare la <a href="http://***************">policy privacy.</a> <br /> <br /> <INPUT TYPE = "IMAGE" SRC = "immagine.png" OnClick="javascript:nascondi()"> </p> </div>
Cliccando sul pulsante di accettazione richiamo la funzione nascondi, che crea il cookie e nasconde il div facendo così scomparire il banner.
E fino a qua funziona tutto, cookie creato, e banner che scompare.
Ciò che non mi riesce fare è nascondere il div se è già presente il cookie.
E non capisco il perchè, il codice dovrebbe essere corretto, e funzionante, se dentro alle parentesi grafe al posto dicodice://leggo il cookie e se presente nascondo il div var nome = leggiCookie('ConsensoCookie'); if (nome=="ok") { document.getElementById("Finestra2").style.display="none"; }
document.getElementById("Finestra2").style.display ="none";
inserisco un altro codice, ad esempio
window.alert("prova");
la finestra di allerta compare, segno che il cookie è stato letto e riconosciuto, ma se inserisco l'istruzione per nascondere il div non funziona più.
Eppure tale istruzione identica la utilizzo dentro la funzione nascondi, e funziona perfettamente.
Ho pure provate a mettere dentro le parentesi graffe l'istruzione
nascondi();
nulla non funziona, eppure tale funzione se la richiamo dal pulsante viene eseguita.
Sicuramente c'è qualcosa che mi sfugge, se qualcuno fosse in grado di capire dove è il problema, ve ne sarei grato.
Grazie.
Gianluca.

Rispondi quotando