Limité une fausse popup à une fois par visite

Résolu
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008 - 8 janv. 2008 à 11:54
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008 - 10 janv. 2008 à 12:34
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 janv. 2008 à 12:11
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»
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 janv. 2008 à 10:18
>>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»
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 janv. 2008 à 10:25
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»
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
10 janv. 2008 à 12:23
>>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»
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
8 janv. 2008 à 12:19
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
0
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
8 janv. 2008 à 12:20
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 janv. 2008 à 12:26
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»
0
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
8 janv. 2008 à 12:30
Merci je v'ai essayé.
Encore une nouveau truc à apprendre. Dur d'essayer d'être auto didacte.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 janv. 2008 à 12:40
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»
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
8 janv. 2008 à 14:48
La gestion des cookies n'est pas une chose difficile :

http://www.riatoolbox.com/2007/08/27/gestion-des-cookies/
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 janv. 2008 à 15:08
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»
0
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
8 janv. 2008 à 15:46
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?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 janv. 2008 à 16:07
>>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»
0
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
9 janv. 2008 à 08:09
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 janv. 2008 à 10:50
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»
0
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
9 janv. 2008 à 11:42
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
9 janv. 2008 à 12:11
pour gagner plus, il faut travailler plus      ;o)))
<hr />                Cordialement            Bul         «mon Site»     «M'écrire»
0
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
10 janv. 2008 à 09:47
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
0
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
10 janv. 2008 à 10:03
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
0
cs_jecirbe Messages postés 13 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 10 janvier 2008
10 janv. 2008 à 10:05
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
0
Rejoignez-nous