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:
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>
In pratica ho creato un banner, servendomi di un div Finestra2, e inserendo all'interno il testo e un pulsante di accettazione.
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.
codice:
//leggo il cookie e se presente nascondo il div
var nome = leggiCookie('ConsensoCookie');
if (nome=="ok") {
document.getElementById("Finestra2").style.display="none";
}
E non capisco il perchè, il codice dovrebbe essere corretto, e funzionante, se dentro alle parentesi grafe al posto di
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.