Avatar billede Slettet bruger
03. november 2003 - 22:18 Der er 3 kommentarer og
1 løsning

Sætte/læse cookie med JS?

Hej!

Jeg søger en måde at sætte og læse en cookie med JavaScript, da koden herunder skal stå på en side der til tider bliver opdateret i brugerens browser (f.eks. med F5).

Jeg ønsker at browseren husker om brugeren hvade boksen åben eller lukket.

På forhånd tak

<table style="position:absolute;bottom:20px" align="center" width="100%" cellspacing="2" cellpadding="0" border="1">
<tr><td id="knap" bgcolor="red" align="right"><a href="#" onClick="document.getElementById('tekst').style.display = (document.getElementById('tekst').style.display == 'none') ? 'block' : 'none';document.getElementById('knap').style.background = (document.getElementById('knap').style.background == 'blue') ? 'red' : 'blue';return false;">Luk/Åbn boks</a></td></tr>
<tr><td>
<div id="tekst" style="display: block;">
her er boksen
</div>
</td></tr>
</table>
Avatar billede roenving Novice
03. november 2003 - 22:21 #1
<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();">
Avatar billede Slettet bruger
03. november 2003 - 22:28 #2
hmm...pænt langhåret for en JS novice som mig, hvordan kæder jeg det sammen med min egen kode?
Avatar billede Slettet bruger
05. november 2003 - 14:33 #3
Jeg fandt disse kommenterede funktioner:

function getCookie(Navnpaacookie) {

// Først tjekker vi om der er en cookie lagret.
// Ellers bliver længden af document.cookie nul.

if (document.cookie.length > 0)
{

// Dernæst tjekker vi om cookiens navn er lagret i
// "document.cookie" objktet for siden.

// Eftersom mere end en cookie kan lagres på
// en enkelt side, er det muligt at vores cookie
// ikke er tilstæde, selvom "document.cookie" object
// ikke bare er en tom tekst.
// Hvis vores cookienavn ikke er tilstæde gemmes værdien -1
// i en variabel kaldet "begin".

begin = document.cookie.indexOf(Navnpaacookie+"=");
if (begin != -1) // NB: != betyder "er ikke lig med"
{

// Vores cookie blev sat.
// Værdien lagret i cookien retuneres af funktionen.

begin += Navnpaacookie.length+1;
end = document.cookie.indexOf(";", begin);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(begin, end)); }
}
return null;

// Vores cookie blev ikke sat.
// Værdien "nul" retuneres af funktionen.

}

function setCookie(Navnpaacookie, value, expiredays) {

// Tre variabler bliver brugt til at sætte den nye cookie.
// Navnet på cookien, værdien der skal gemmes,
// og tilsidst antallet af dage indtil cookien udløber.
// De første linier i funktionen konverterer
// antallet af dage til en gyldig dato.

var ExpireDate = new Date ();
ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));

// Den næste linie gemmer cookien, ved at tildele
// værdierne til "document.cookie" objektet.
// NB datoen konverteres til Greenwich Mean time ved at bruge
//"toGMTstring()" funktionen.

document.cookie = Navnpaacookie + "=" + escape(value) +
((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}




function delCookie (Navnpaacookie) {

// Denne funktion tjekker om cookien er sat.
// Hvis ja, sættes udløbs datoen til to Jan. 1st 1970.

if (getCookie(Navnpaacookie)) {
document.cookie = Navnpaacookie + "=" +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
Avatar billede roenving Novice
05. november 2003 - 16:25 #4
Fint nok -- jeg har ikke haft tiden til at hjælpe dig !-)
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