Avatar billede bitnissen Nybegynder
14. august 2001 - 17:47 Der er 13 kommentarer og
1 løsning

Cookies

Jeg har sørme også en flash-film, der kun skal vises første gang folk kommer ind på siden hver uge. (Cookie timeout skal vare en uge..)

Jeg har tidligere kun arbejdet med cookies i asp/php. Hvordan laver man et sådant cookie-check i javascript?
Avatar billede Slettet bruger
14. august 2001 - 18:46 #1
Okay! Here goes:
<script>
<!--
udloeber = new Date()
udloeber.setTime(udloeber.getTime() + 604800000)

alleredeSet = \"nej\"
if (document.cookie!= \"\") {
document.write(\'Din flash-kode\')
}
else {
document.cookie = \"alleredeSet=\" + \"ja\" + \"; expires=\" + udloeber.toGMTString()
}
//-->
</script>

Sæt scriptet i <body>-tagget, dér hvor du vil have din flash-kode!
P.S. Husk at erstatte \'Din flash-kode\' med din rigtige kode! Du skal huske at starte og afslutte hver linje med \' , og hvis din kode er på flere linjer, skal du skrive:
\'<kode-linje>\' +
\'<næste kode-linje>\' +
\'<sidste kode-linje!>\'
P.P.S. Dette script virker kun, hvis der ikke bliver sat andre cookies fra din side!

Håber det kan hjælpe!
Håber det kan hjælpe!
Avatar billede Slettet bruger
14. august 2001 - 18:46 #2
Whoops, en linje for meget til sidst! :-)
Avatar billede bitnissen Nybegynder
14. august 2001 - 23:18 #3
Jeg har gjort som du skrev...
Placeret følgende ind i body. Flash-tingen havde jeg i forvejen på en enkelt linie, så det var bare at paste ind..  men.. problemet er bare at den bliver ved med at vise flash\'en hver gang jeg går ind på siden. Så det er ikke så fedt :)

Den melder dog ikke om javascript-fejl...

<script>
<!--
udloeber = new Date()
udloeber.setTime(udloeber.getTime() + 604800000)

alleredeSet = \"nej\"
if (document.cookie!= \"\") {
document.write(\'<object bla bla....\')
}
else {
document.cookie = \"alleredeSet=\" + \"ja\" + \"; expires=\" + udloeber.toGMTString()
}
//-->
</script>
Avatar billede bitnissen Nybegynder
14. august 2001 - 23:20 #4
Har i øvrigt prøvet at sætte ind på en side for sig selv, hvor der ikke var andre javascripts eller lign. der kunne være i vejen. Men uden held.

Så hjælp er fortsat værdsat :)
Avatar billede bitnissen Nybegynder
15. august 2001 - 18:39 #5
Ok, så er pointmængden sat op, hvis det hjælper...???
Avatar billede bitnissen Nybegynder
16. august 2001 - 15:57 #6
Det er åbenbart svært..?

Nu er der 300 point, og hvis det er flere der skal til må i jo sige til.. men jeg skal gerne bruge det, sååå... anybody?
Avatar billede tknudsen Nybegynder
17. august 2001 - 08:59 #7
<script>
var now = new Date();
var expireDate = now.getTime() + (7 * 24 * 60 * 60 * 1000)


if(!getCookie(\'LoadFlashOnNextVisit\'))
{
  document.write(/*flash object*/);

  document.cookie = \"LoadFlashOnNextVisit=false;expires=\"+expireDate.toGTMString();

}


function getCookie(name)
{
  var arg = name + \"=\";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen)
  {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(\" \", i) + 1;
    if (i == 0) break;
  }
  return null;
}

function getCookieVal(offset)
{
  var endstr = document.cookie.indexOf (\";\", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

</script>
Avatar billede roenving Novice
17. august 2001 - 09:04 #8
>>tknudsen

vel toGMTString();
Avatar billede bitnissen Nybegynder
17. august 2001 - 11:38 #9
Aber doch...

Runtime error
Error: Object doesn\'t support this property or method

Til linien:
document.cookie = \"LoadFlashOnNextVisit=false;expires=\"+expireDate.toGTMString();

Og har rettet GTM til GMT.... men altså stadig fejlen...!
Avatar billede nikolajdu Nybegynder
18. august 2001 - 07:19 #10
bitnissen - Jeg har en cookie bager, der sørger for at man kun ser en flash først gang.

For folk der undrer sig over hvorfra jeg ved hvad det drejer sig om: http://www.eksperten.dk/spm/98489
Avatar billede nikolajdu Nybegynder
18. august 2001 - 07:26 #11
Den her virker fint.

<html>
<head>
<title>Skip Intro Cookie</title>

<SCRIPT LANGUAGE=\"JavaScript\">

function whichObj(objName) {
    if(navigator.appName==\"Netscape\") {
        return document[objName]
    } else {
        return window[objName]
    }
}

function incCookie(cookieName) {
    var expdate = new Date ();
    expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000 * 30));  // Expires in 30 days
    var expires = \"; expires=\" + expdate.toGMTString();
    cookie = readCookie (cookieName)
    if (cookie) {
        cookie = \"Skip Intro\"
    } else {
        cookie = \"Play Intro\";
    }
    document.cookie=cookieName+\"=\"+cookie+expires;
}
var playintro = 1;

function getCookie(cookieName) {
    option = readCookie (cookieName)
    if(option ==\"Skip Intro\") playintro = 0;
    if(option ==\"Play Intro\") playintro = 1;
}

function readCookie (cookieName) {
    /* Check if we have any cookies at all... */
    if(document.cookie) {
        /* Check if we have the favorites cookie... */
        index = document.cookie.indexOf(cookieName)
        if (index != -1) {
            /* Find the start */
            cookieStart = (document.cookie.indexOf(\"=\", index) + 1)
            /* Find the end */
            cookieStop = document.cookie.indexOf(\";\", index)
            if (cookieStop == -1) { cookieStop = document.cookie.length }
            /* with the start and the end... now you\'ve got the whole thing */
            return document.cookie.substring(cookieStart, cookieStop)
        }
    }
    return null;
}
</SCRIPT>
</head>

<body onLoad=\"incCookie(\'FlashCookie\')\"  text=\"#FFFF00\" bgcolor=\"#000000\">
<center>
    <OBJECT ID=\"cookieintro\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
        codebase=\"http://active.macromedia.com/flash2/cabs/swflash.cab#version=3,0,0,0\"
      width=\"480\" height=\"160\">
            <PARAM name=\"Movie\" value=\"cookieintro.swf\">
            <PARAM NAME=\"BGColor\" VALUE=\"#000000\">
            <PARAM NAME=\"Quality\" VALUE=\"High\">
            <PARAM NAME=\"SCALE\" value=\"exactfit\">
            <PARAM NAME=\"Loop\" VALUE=\"False\">
            <PARAM NAME=\"Play\" VALUE=\"True\">
    <EMBED SRC=\"cookieintro.swf\"
        swLiveConnect=\"true\"
        name=\"cookieintro\"
        LOOP=false
        WIDTH=480
        HEIGHT=160
        QUALITY=high
        BGCOLOR=#000000
        TYPE=\"application/x-shockwave-flash\"     PLUGINSPAGE=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\">
    </EMBED>
    </object>
<br><br>
<SCRIPT LANGUAGE=JavaScript>
<!--
// Checks to make sure the movie is 100% loaded.
for(i=0; i<32767; i++) {
    if(whichObj(\'cookieintro\').PercentLoaded() == 100) {
        getCookie(\"FlashCookie\");
        if(playintro) {
            whichObj(\'cookieintro\').TGotoLabel(\'_level0\',\'IntroStart\');
            document.write(\"<b>First time Visit so Intro will be played.</b>\");
        } else {
            whichObj(\'cookieintro\').TGotoLabel(\'_level0\',\'IntroDone\');
            document.write(\"<b>Second time visit so Intro will NOT be played.</b>\");
        }
    break;
    }
    if(i == 32767) alert(\"Error loading clock!\\n\\nClick your browser Reload.\");
}
//-->
</SCRIPT>
</center>
<h2>REMEMBER:  You can only transfer to a frame label if that frame is loaded.</h2>
<h3><ul>To use this script:<br>
    <li>Replace \'yourmoviename\' with the name you gave your movie in the object or embed tag.
    <li>Make sure that you movie has a label at the begining and end of the intro.
    <li>Replace \'IntroStart\' and \'IntroDone\' with your labels.
    <li>Uncomment the \'TGotoLabel\' statements and comment out the document statements.
    <li>The expiration date is set for current date + 30 days.  Change this if you like.
    </ul>
</h3>
</center>
</body>
</html>


Du skal så i din flashfilm ave 2 framelabels.

1: \"IntroStart\"
2: \"IntroDone\"

/Nikolaj

http://www.fotx.net/nikolajdu
Avatar billede bitnissen Nybegynder
25. august 2001 - 17:47 #12
Lige et par navne der ikke passede sammen i det script der, men det var jo til at fixe... takker mange gange :)

Og så passede det endda med at det også venter på at flash\'en er loadet, som jeg ellers selv skulle have været i gang med også.

Så pointene til dig, Nikolaj... og endnu engang tak :)
Avatar billede bitnissen Nybegynder
25. august 2001 - 18:39 #13
duh! - virker ikke i netscape (4.03 jeg tester med)....  whichObj has no properties er fejlen.

Nogen der kan knække den nød..?
Avatar billede nicklasb Nybegynder
31. marts 2002 - 20:19 #14
Meget bedre med det sorte  kryds, syntes jeg..
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