Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Nascondere Div non funziona

    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.
    Ultima modifica di GianlucaB; 06-06-2015 a 16:33

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Devi racchiudere il codice che legge il cookie dentro evento onload
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Devi racchiudere il codice che legge il cookie dentro evento onload
    Grazie per la riposata.
    Però non sapendo come inserire il codice dentro l'evento onload ho fatto così:

    codice:
    function controlla() {
    var nome = leggiCookie('ConsensoCookie');
    if (nome=="ok") {
    document.getElementById("Finestra2").style.display="none";
    }
    }
    window.onLoad="controlla()";
    Ma purtroppo non funziona.
    Come devo fare per inserire l'evento onLoad?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    window.onLoad=function(){controlla()};
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Grazie, comunque alla fine ho visto che funziona pure così

    onload=controlla

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 © 2024 vBulletin Solutions, Inc. All rights reserved.