2010-09-29 4 views
1

J'utilise le code suivant pour afficher deux conteneurs div après 3 minutes:conteneur d'affichage uniquement pour les 4 premières visites sur le site

/* Display After 3 Minutes (180000) */ 
setTimeout("jQuery('#contact-overlay, #contact-window').show();", 180000); 

Je veux que ces conteneurs div pour ouvrir après 3 minutes sur les 4 premiers visites sur le site Web, après cela, les conteneurs div ne doivent pas ouvrir à nouveau pour cet utilisateur. Je suppose que cela pourrait être suivi en utilisant le script de cookies jquery, mais je ne suis pas sûr de savoir comment je pourrais obtenir ce travail.

+0

La personne est-elle authentifiée? Les cookies peuvent être supprimés, ce qui ramène le comportement si vous comptez sur une valeur de cookie. Pour un utilisateur authentifié, vous pouvez suivre le nombre de visites sur le serveur et n'injecter le comportement que si le nombre de visites est inférieur à votre seuil. – tvanfosson

+0

@tvanfosson: Merci pour la réponse. Je ne suis pas dérangé si les cookies sont supprimés, ce qui n'est pas un problème. – GhostPool

Répondre

2

Obtenez le plug-in cookie du lien ici: http://www.electrictoolbox.com/jquery-cookies/

Ouvert uniquement sur les 4 premières visites sur le site:

//$(document).ready(function(){ 
     if(!$.cookie('visits')){ 
     $.cookie('visits',1, {expires: 30}); 
     } 
     $.cookie('visits', (parseInt($.cookie('visits')) + 1), {expires: 30}) 
      //will expire after 30 days 
     var overlayContact = function(){ 
      if(parseInt($.cookie('visits')) < 5){ 
       $('#contact-overlay, #contact-window').show(); 
      } 
     }; 
     setTimeout(overlayContact, 180000); 
    //} 
    // Replace all $ with jQuery if you're doubling up 
    // on your javascript frameworks. 

Ou ouvrir uniquement sur les 4 premières fois que l'utilisateur voit réellement la boîte, déplacez la ligne d'incrémentation des cookies dans le corps de la fonction overlayContact, avant le if.

+0

En utilisant l'un des codes ci-dessus, je ne peux que charger la première fois et c'est tout. Si j'efface les cookies, il se charge la première fois de nouveau. Cependant, il ne charge pas les 4 premières fois. Une idée pourquoi? – GhostPool

+0

@GhostPool: essayez avec le code mis à jour. Vous pouvez également définir des points d'arrêt et voir comment le code est exécuté à l'aide de Firebug dans Firefox ou de l'inspecteur dans Google Chrome ou Safari. Ceux-ci devraient vous aider à déboguer le code. –

+0

Fonctionne un charme. Merci. :) – GhostPool

Questions connexes