Avatar billede laksen Nybegynder
15. oktober 2003 - 19:26 Der er 16 kommentarer og
1 løsning

Cookie i menu

Jeg ved godt, at der er spurgt om dette 1000 gange før, men jeg spørger alligevel...

Jeg skal have sat en cookie, når der trykkes på et div-element i en menu, jeg har lavet. Når siden genåbnes, skal siden hente den satte cookie, således at menuen er åben fra start.

Jeg kan godt finde ud af hele menu-delen, men cookie-delen ved jeg ikke, hvordan skal laves.
Avatar billede roenving Novice
15. oktober 2003 - 19:29 #1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Cookies</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Stone's WebWriter 4">
<script language="javascript" type="text/javascript">
function skrivCookie(name,value,expTime,path){//Tid i dage
    switch(skrivCookie.arguments.length){
        case 1:
            var expTime = 0;
            var path = "/";
        case 2:
            var expTime = 0;
            var path = "/";
        case 3:
            var path = "/";
    }
    var exp = new Date().getTime()+expTime*24*60*60*1000;
    exp = new Date(exp).toGMTString();
    var cook = name + " = " + escape(value) + ";expires=" + exp + ";path=" + path;
    document.cookie = cook;
}
function hentCookie(name){
    if (document.cookie){
        var n = document.cookie.indexOf(name+"=");
        if (n>-1){
            var val = document.cookie.substring(n+name.length+1);
            n = val.indexOf(";");
            if(n>-1)val=val.substring(0,n);
            return unescape(val);
        }
    }
}
</script>

</head>

<body onload="hentCookie();">
<form name="CookieForm">
<input name="navn" value="" onchange="skrivCookie();">
<input name="adresse" value="">
</form>
</body>

</html>
Avatar billede laksen Nybegynder
15. oktober 2003 - 19:42 #2
Jeg kan ikke lige få det til at virke. Hvad skal jeg gøre mere end blot at copy-paste det ind i et dokument og uploade det til serveren?
Avatar billede roenving Novice
15. oktober 2003 - 19:52 #3
Måske:
<body onload="hentCookie('menu');">
<form name="CookieForm">
<input name="navn" value="" onchange="skrivCookie('menu','menu1',1,'/');">
<input name="adresse" value="">
Avatar billede roenving Novice
15. oktober 2003 - 19:53 #4
<body onload="document.getElementById(hentCookie('menu')).style.display="block";">
Avatar billede roenving Novice
15. oktober 2003 - 19:54 #5
Hov:

<body onload="document.getElementById(hentCookie('menu')).style.display='block';">
Avatar billede laksen Nybegynder
15. oktober 2003 - 20:10 #6
Jeg kan ikke få siden til at gemme cookien på min maskine. Der sker intet, når jeg forlader feltet.... Jeg har slået cookies til osv.
Avatar billede roenving Novice
15. oktober 2003 - 20:24 #7
Har du prøvet at kigge under cookies (Funktioner-->Internet indstillinger...-->Midlertidige internet filer -->Indstillinger...-->Vis filer ?-)
Avatar billede laksen Nybegynder
15. oktober 2003 - 20:34 #8
Hvad mener du?
Avatar billede roenving Novice
15. oktober 2003 - 21:03 #9
Om du får oprettet en cookie ?-)
Avatar billede laksen Nybegynder
15. oktober 2003 - 21:04 #10
Min cookie ligger ikke i mappen med cookies. Det er det, der er problemet. Normalt når jeg sætter en cookie i asp, kan jeg se den i mappen med det samme, men når jeg prøver med dit javascript ovenfor, sker der intet.
Avatar billede roenving Novice
15. oktober 2003 - 21:10 #11
-- Er du sikker på, at du har fået sat expirationdate på ?-)

Hvis du kigger på min kode 19:52:31 har jeg sat 1 på som antal dage ellers bliver den nemlig ikke gemt !-)
Avatar billede laksen Nybegynder
15. oktober 2003 - 21:55 #12
Nu har jeg fået det til at virke! Nu overskriver den cookien hver gang. Hvordan får man den til at se, om værdien der indsættes er i cookien i forvejen. Hvis ja, skal den slettes i cookien (resten forblive indtakt), hvis nej skal den tilføjes, så der er flere værdier i cookien (ikke overskrives!). Jeg giver gerne flere point, hvis du mener spørgsmålet er blevet udvidet.
Avatar billede roenving Novice
16. oktober 2003 - 13:39 #13
Sådan ?-)

...
function skrivCookie(name,value,expTime,path){//Tid i dage
    var c = hentCookie(name);
    if(c.indexOf(value)>-1){
      c = c.split(value).join("");
      document.cookie = name + "=" + c + ";expires=Thu, 01-Jan-70 00:00:01 GMT";
    return;
    }else value+=","+c;
    switch(skrivCookie.arguments.length){
...
Avatar billede laksen Nybegynder
17. oktober 2003 - 14:40 #14
Det virker ikke rigtig.... I Explorer sker der intet - cookien er tom uanset hvad. I Mozilla tilføjes en ny værdi, hvilket jo var meningen, men den sletter ikke en allerede tilføjet værdi.

Jeg forklarer igen, hvad jeg skal bruge:
- Der skal være en cookie, der hedder "menu".
- Når der trykkes på menu-punkt 1, skal der skrives "menu_1" til cookien.
- Hvis cookien allerede indeholder værdien "menu_1", skal den slettes fra cookien, så den kun indeholder de øvrige værdier (evt. ingen).
- Hvis cookien ikke indeholder værdien "menu_1", skal den tilføjes til de øvrige værdier (ikke overskrives).
- Det samme gælder for de øvrige menu-punkter.
- Den skal naturligvis fungere i alle browsere (i hvert fald Explorer og Mozilla).

Håber du forstår, hvad jeg mener...
Avatar billede laksen Nybegynder
18. oktober 2003 - 18:48 #15
Fortsat på http://www.eksperten.dk/spm/415656.

roenving> opretter du ikke et svar for din hjælp med cookierne?
Avatar billede roenving Novice
19. oktober 2003 - 05:53 #16
Oki, velbekomme '-)

-- og jeg skal nok forfølge det andet spørgsmål !-)
Avatar billede roenving Novice
19. oktober 2003 - 23:54 #17
-- og tak for points ;~}
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

IT-JOB

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Rambøll Management Consulting

Senior AI Engineer

Netcompany A/S

Network Engineer