Avatar billede alfred Nybegynder
09. oktober 2001 - 16:44 Der er 6 kommentarer og
1 løsning

cookie til styring af popup

jeg skal bruge et script der kan styre at et popup, der aktiveres gennem en <body onload=popup()>, kun åbnes 3 gange om dagen og det skal styres med cookies. Hurtigt svar belønnes med gode point.

/alfred
Avatar billede z42cool Nybegynder
09. oktober 2001 - 17:02 #1
Hvad mener du med 3 gange om dagen? På betsemte tidpunkter, de første 3 gange ller hvad?
Avatar billede alfred Nybegynder
09. oktober 2001 - 17:07 #2
De første 3 gange
Avatar billede nute Nybegynder
09. oktober 2001 - 17:08 #3
<script language=\"javascript\">
<!--

  var kage = document.cookie;
  visits = 0;
  function getCookie(name) {
    var index = kage.indexOf(name + \"=\");
    if (index == -1) return null;
    index = kage.indexOf(\"=\", index) + 1;
    var endstr = kage.indexOf(\";\", index);
    if (endstr == -1) endstr = kage.length;
    return unescape(kage.substring(index, endstr));
  }

  function setCookie(name, value) {
    var today = new Date();
    var expiry = new Date(today.getTime() + 24 * 60 * 60 * 1000);
    if (value != null && value != \"\")
      document.cookie=name + \"=\" + escape(value) + \"; expires=\" + expiry.toGMTString();
    kage = document.cookie; // update kage
  }
  visits = isNaN( parseInt( getCookie(\"numVisit\") ) ) ? 0 : parseInt( getCookie(\"numVisit\") );
    alert( visits );
  if ( visits < 3){
    setCookie(\"numVisit\",visits + 1);
    window.open(\"http://www.ekspertne.dk\",\"coder\");
  }

//-->
</script> 

/nute
Avatar billede alfred Nybegynder
09. oktober 2001 - 17:14 #4
så hvis jeg kører en <body onLoad=popup()>, hvad skal så være popup() ?

Denneher gør jo ikke noget ved onload...
Avatar billede nute Nybegynder
09. oktober 2001 - 17:17 #5
du trenger ingen onLoad til dette. Hele din HTML fil trenger kun å inneholde:

<html><body>
<script language=\"javascript\">
<!--

  var kage = document.cookie;
  visits = 0;
  function getCookie(name) {
    var index = kage.indexOf(name + \"=\");
    if (index == -1) return null;
    index = kage.indexOf(\"=\", index) + 1;
    var endstr = kage.indexOf(\";\", index);
    if (endstr == -1) endstr = kage.length;
    return unescape(kage.substring(index, endstr));
  }

  function setCookie(name, value) {
    var today = new Date();
    var expiry = new Date(today.getTime() + 24 * 60 * 60 * 1000);
    if (value != null && value != \"\")
      document.cookie=name + \"=\" + escape(value) + \"; expires=\" + expiry.toGMTString();
    kage = document.cookie; // update kage
  }
  visits = isNaN( parseInt( getCookie(\"numVisit\") ) ) ? 0 : parseInt( getCookie(\"numVisit\") );
  if ( visits < 3){
    setCookie(\"numVisit\",visits + 1);
    window.open(\"http://www.ekspertne.dk\",\"coder\");
  }

//-->
</script> 
</body>
</html>

Hele \"maskinen\" i scriptet ligger gjemt her:


  visits = isNaN( parseInt( getCookie(\"numVisit\") ) ) ? 0 : parseInt( getCookie(\"numVisit\") );
  if ( visits < 3){
    setCookie(\"numVisit\",visits + 1);
    window.open(\"http://www.ekspertne.dk\",\"coder\");
  }

/nute
Avatar billede z42cool Nybegynder
09. oktober 2001 - 17:31 #6
Ovenstående er for så vidt rigtigt, der er dog et par småting! Du BEHØVES ikke at anvende onLoad, men det er klogt da du derved sikrer di at eventuelle elementer på siden du ønsker at referere faktisk er loadet. Desuden bør du placere alt JavaScript i <HEAD></HEAD> sektionen da du derved sikrer dig at det så er parset når du når til <BODY>.
Avatar billede nute Nybegynder
09. oktober 2001 - 18:44 #7
z42cool >> true, men nå var jo dette skrevet bare for eksempelets skyld ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester