Limité une fausse popup à une fois par visite [Résolu]

Signaler
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008
-
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008
-
Bonjour,
J'ai utilisé un script javascript pour créer une fausse popup. Je me suis débrouiller ( un peu de script par ci un autre part là)  pour que cette fausse popup s'ouvre à l'ouverture de la page. Maintenant j'aimerais limité cette ouverture à une seule fois par jour ou par visite, car lorsque le visiteur va sur autre page puis revient, ben la popup aussi.
J'ai fait des recherches avant de poster mais je n'ai rien trouver. peut-être mauvais mots clés
Marci d'avance de vortre aide

22 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

    >>Maintenant j'aimerais limité cette ouverture à une seule fois par jour ou par visite,
       utiliser un cookie




<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>lorsque que le cookie est présent je veux qu'il ne se passe rien
    ben... ne fais rien !

et entre nous, pourquoi onload ? ( ou alors mets-y "tout" )
met le script juste avant et point barre !

<html>
....

.... ta page...
<script type= "text/javascript">
    var da = new Date();
    var auj=((da.getFullYear()*12*31)+(da.getMonth()*31)+(da.getDate()));
    if ( auj != Number( document.cookie ) )
          {        var lb = new Lightbox();
                    lb.start( $('firstImageID') );
                    var d=new Date(Date.parse(da)+(1000*60*60*2));    // pour "presque" 1 jour
                    document.cookie=auj + ";expires=" + d.toGMTString() + ";" ; 
            }

</script>

</html>


    ou .... et là on place le script n'importe ou dans la page !!!!!
    et ça revient strictement au même.


<html>
....

<script type="text/javascript">

    window.onload=function()
    {
    ... les lignes en orange...

    }

</script>

.... ta page...



</html>






      ou <head>

            <script type ="text/javascript">

            function
fonction_cookie()
             {   ... les lignes en orange ...    }
          </head>
            ...

          
        

    et ça revient strictement au même.






    ça devrait le faire....



<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
croisements des messages....

ne rien faire si le test est vrai et exécuter quelquechose si c'est faux
       était une solution.

    pour simplifier un peu :
        if ( a==b )
                  {   si c'est vrai    }
        else   {   si c'est faux   }
    "mieux vaut faire ?"
        if ( a !=b )
        {   si c'est faux  }

<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>Est-ce que ce script connaitra des pbs avec certains navigateurs.

    je ne pense pas... mais va savoir ?
    ( testé de mon coté, en plus, avec IE7, K-Meleon, Opera, Safari  )

>>Faut-il faire un test d'acceptation de javascript ou d'acceptation des cookies?

    accepter le javascript et les cookies se paramètre dans les navigateurs.
    on ne peut que constater les choses et suggèrer au visiteur d'accepter, rien de plus.

    pour la javascript, dans le html, ce qui est entre les balises <noscript> et </noscript>
          est affiché si le javascript n'est pas validé.

    pour les cookies, il y a bien navigator.cookieEnabled et autres... , mais tous les
       navigateurs ne connaissent pas. le plus simple est probablement de créer
       un cookie, de récupérer les erreurs ( try/catch au cas où ) , puis de regarder s'il existe...




<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

j'ai commencé à regardé. n'y aura -t-il pas une sorte de conflit car j'ai cru lire qu'il faut aussi "lire" le cookie grâce à onload
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

j'ai commencé à regardé. n'y aura -t-il pas une sorte de conflit car
j'ai cru lire qu'il faut aussi "lire" le cookie grâce à onload
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
un conflit ?

    au chargement de la page :
             il y a un cookie ?
                non : le créer avec la date du jour
                          afficher le pop-up
                oui  : même jour ? ( ou autre test )
                         non :   modifier la date du cookie
                                    afficher le pop-up

            

<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

Merci je v'ai essayé.
Encore une nouveau truc à apprendre. Dur d'essayer d'être auto didacte.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
et pour "détruire" un cookie mettre la date d'expiration
    (expire=) à une date dépassée ( par exemple ).
<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
La gestion des cookies n'est pas une chose difficile :

http://www.riatoolbox.com/2007/08/27/gestion-des-cookies/
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
salut XTremDuke

    et même déjà trop "sophistiqué" pour le besoin ici

_    créer un cookie (pour ~1 an) :
     = ===========================
     var da = new Date();
     var d = new Date( Date.parse(da) + ( 1000*60*60*24*365 ) );
     document.cookie = "données du cookies" +
                       ";expires=" + d.toGMTString() + ";" ;


         


données du cookies : la date du jour, par exemple ?






_    utiliser les données du cookie :
     ==============================
    alert(document.cookie);
   












<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

d'abord merci pour vos réponses.
petites questions subsidiaires:
la partie créer un cookie se met dans le <head> exact?
cela devrait ressembler à ca ?
<head>
<script type="text/javascript">
var da = new Date();
     var d = new Date( Date.parse(da) + ( 1000*60*60*24) );
     document.cookie = "données du cookies" +
                       ";expires=" + d.toGMTString() + ";" ;

 </script>
<head>

et la partie utiliser les données du cookie ca se met ou?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>la partie créer un cookie se met dans le <head> exact?
    où tu veux... comme tout le javascript.
    par "convenance", pour plus de clarté.... souvent...
          on y met les function.


>>et la partie utiliser les données du cookie ca se met ou?
    c'est ce qui est en rouge...  
    sera "récupéré"  par document.cookie




    si on fait document.cookie="toto;expires=" + d.toGMTString() + ";" ;
      alert(document.cookie) affichera toto
  même si on ferme le pc entre temps.
 


<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

Bonjour
j'ai essayé de faire mes devoirs   mais apparement il y a des erreurs car ce que j'ai fait ca marche pas .
voici la partie du code qui nous intéresse. J'avoue que j'ai cherché a adapté un script que j'ai trouvé . Le pb c'est que lorsque je ne trouve pas le cookie sur mon PC et de deux ma fausse popoup qui devrait s'afficher par la fonction startup:

<script type="text/javascript">
function SetCookie (name, value)
{
//nouvel objet date
var aujourdhui = new Date() ;
 
//nouvel objet date
var expdate = new Date() ;
 
//valable 12 heures
expdate.setTime( aujourdhui.getTime() + ( 12*3600*1000 ) )
 
//creation du cookie
document.cookie = name + "=" + value + ";expires=" + expdate.toGMTString() ;
}
//récupère la valeur du cookie
function GetCookie ()
{
var cookValue = "" ;
 
//on récupère la position du "=" dans le cookie
var egal = document.cookie.indexOf( "=" ) ;
 
//on prend la sous-chaine comprise entre le "=" et le ";" donc sa valeur
cookValue = document.cookie.substring ( egal + 1 ) ;
 
if ( cookValue == "" )
{
//ne fait rien
return false ;
}
else
{
//affiche lapopup
 window.onload = startup;
}
}
</script>

Merci de votre aide
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
ch'tit exemple...   à, affiner et à adapter à ce que tu veux !

<HTML>
<HEAD>
<TITLE>test si 1ère venue sur le site pour un jour donné</TITLE>
</HEAD>

<script type="Text/JavaScript">
    var da = new Date();
    var auj=((da.getFullYear()*12*31)+(da.getMonth()*31)+(da.getDate()));
    //    alert("*"+document.cookie);
    if ( auj == Number( document.cookie ) )
               {    alert("autres fois");  }
    else    {    alert("1ère fois");
                      var d=new Date(Date.parse(da)+(1000*60*60*24*365));    // pour "presque" 1 an
                      document.cookie=auj + ";expires=" + d.toGMTString() + ";" ;  
            }
</script>

</HTML>

<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

MERCI
j'essayerai demain si j'ai le temps car dans la vie il faut travailler de temps en temps. C'est alimentaire mon cher Watson
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
pour gagner plus, il faut travailler plus      ;o)))
<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

bonjour
gra^ce à vous tous tout marche presque parfaitement. un tout petit soucis. tout d'abord le petit code:
<script type="text/javascript">
var da = new Date();
    var auj=((da.getFullYear()*12*31)+(da.getMonth()*31)+(da.getDate()));
    //alert("*"+document.cookie);
    if ( auj == Number( document.cookie ) )
               {  alert ("toujours ici!");    }
    else    {   window.onload = function() {
                    var lb = new Lightbox();
                    lb.start( $('firstImageID') );}
                      var d=new Date(Date.parse(da)+(1000*60*60*2));    // pour "presque" 1 jour
                      document.cookie=auj + ";expires=" + d.toGMTString() + ";" ; 
            }

</script>
Mon problème est que lorsque que le cookie est présent je veux qu'il ne se passe rien. j'ai essayé avec return false; quand je tape cette ligne à la place de alert("toujours ici");  et bien rien se passe comme prévu .Mais quand je supprime le cookie et que je rffraichis la page, il y  rien qui se passe . Pourquoi javascript est si"méchant" avec moi?
Merci d'avance
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

Ca marche j'ai changé une ligne. Je penses que ça ne doit pas être très académique. Si vous avez mieux je suis preneur
Messages postés
13
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
10 janvier 2008

Ouuups !  j'ai oublié de mettre le code que j'ai modifié:
<script type= "text/javascript">
var da = new Date();
    var auj=((da.getFullYear()*12*31)+(da.getMonth()*31)+(da.getDate()));
    //alert("*"+document.cookie);
    if ( auj == Number( document.cookie ) )
               {     }<----------- j'ai enlevé return false
    else    {  window.onload = function() {
                    var lb = new Lightbox();
                    lb.start( $('firstImageID') );}
                    var d=new Date(Date.parse(da)+(1000*60*60*2));    // pour "presque" 2 heures
                    document.cookie=auj + ";expires=" + d.toGMTString() + ";" ; 
            }

</script>
 Je penses que ça ne doit pas être très académique. Si vous avez mieux je suis preneur
Merci