2015-08-22 15 views
12

Sono nuovo a jQuery e ho alcune esigenze sul mio sito web. Voglio mostrare il popup jQuery div alla prima volta solo quando arriva l'utente. Non c'è bisogno di mostrare ancora e ancora.Mostra popup jQuery solo alla prima visita di una pagina

Ancora Sto usando questo, ma non so come nascondere al secondo tempo:

var isshow=0; 
$(document).ready(function() { 
    if (isshow == 0) { 
    $('#jPopup').show(); 
    } 
    isshow = 1; 
}); 

Ma la variabile ishow inizializza ogni volta.

+0

Per questo è possibile utilizzare i cookie o la memoria locale. –

risposta

16

È possibile utilizzare localstorage. È facile da capire e da usare.

$(document).ready(function() { 
    var isshow = localStorage.getItem('isshow'); 
    if (isshow== null) { 
     localStorage.setItem('isshow', 1); 

     // Show popup here 
     $('#jPopup').show(); 
    } 
}); 

Ti mostrerà il popup alla prima visita del tuo sito.

+1

Grazie @umesh, sta funzionando bene per me. Molte grazie. – rudrainnovative

+0

WC @rudrainnovative. –

+0

Il nome della variabile di 'getItem' e' setItem' non dovrebbe essere lo stesso? – Bijan

4

È possibile utilizzare SessionStorage o LocalStorage per questo secondo le proprie necessità.

Se è necessario eseguire solo per quella sessione, utilizzare SessionStorage. Se deve essere memorizzato in modo permanente nel browser dell'utente, utilizzare LocalStorage.

$(document).ready(function(){ 
     if(sessionstorage && !sessionStorage.getItem('isshow')){ 
      $('#jPopup').show(); 
      sessionStorage.setItem('isshow', true); 
     } 
    }); 
3

È possibile utilizzare localStorage per questo scopo, come di seguito:

$(document).ready(function(){ 
    var shown= localStorage.getItem('isshow'); 
    if(shown !="t"){ 
     $('#jPopup').show(); 
     localStorage.setItem('isshow', "t"); 
    } 
}); 
1

hai bisogno di nascondere sul carico o di farlo in css (consigliato) e quindi controllare localStorage per vedere se è la prima visita.

$(document).ready(function() { 
     $('#jPopup').hide(); //hide on load or in css, later check if its the first visit 
     var isshow= localStorage.getItem('status'); 
     //check if it is the first visit 
     if (isshow == null || isshow == '') { 
      //set variable to 1 
      localStorage.setItem('isshow', 1); 
      $('#jPopup').show(); 
     } 
     }); 
+0

perché è necessario nascondere, è già visualizzato: nessuno all'interno di CSS? – rudrainnovative

+1

@Tal Avete qualche link di guida di stile che consiglierebbe questo? Personalmente trovo almeno leggermente fastidioso vedere un grande popup apparire per una frazione di secondo mentre il DOM carica prima che lo script venga eseguito. – Sebi

3

È possibile impostare un cookie per memorizzare un valore e verificare se non è impostato poi mostrare pop-up:

$(document).ready(function() { 
    var isshow = $.cookie("isshow"); 
    if (isshow == null) { 
     $.cookie("isshow", 1); // Store 

     // Show popup here 
     $('#jPopup').show(); 
    } 
}); 

oppure è possibile impostare localStorage. Ecco un esempio funzionante. jsFiddle

$(document).ready(function() { 
    if(localStorage.getItem('popState') != 'shown') { 
     $("#popup").delay(2000).fadeIn(); 
     localStorage.setItem('popState','shown') 
    } 
}); 
Problemi correlati