Avatar billede benjax Nybegynder
04. januar 2002 - 09:31 Der er 1 løsning

Problem med at cookie bliver ignoreret

Jeg har et underligt cookie-relateret problem. En side skal kalde en popup-boks med et afkrydsningsfelt \"Vis ikke denne side igen [ ]\". Hvis brugeren sætter hak i feltet, må boxen ikke blive vist igen, førend der er gået X dage.

Problemet er at det ikke virker stabilt; ofte kommer boxen frem, selv om tiden ikke er udløbet. Andre gange fungerer det godt nok; jeg kan ikke finde noget system i det.

Koden til at styre cookien ser således ud:

//
// updateCookie.js
//
// The following fields must exist:
//    var antalDage
//
// Result:
//    document.Ok == document.Ok|false
//
var visEj = false;
udloebsDato = new Date;
udloebsDato.setDate(udloebsDato.getDate()+antalDage);
if(document.cookie != \"\") {
    visEj = (document.cookie.split(\"=\")[1] == \"true\" ? true : false);
    if(visEj) document.Ok = false;
}
function updateCookie(field)
{
    visEj = field.checked;
    document.cookie = \"visEj=\" + visEj + \";expires=\" + udloebsDato.toGMTString();
}
// End

Variablen antalDage er defineret på den side, hvor scriptet kaldes. Propertyen document.Ok sættes til false, hvis siden ikke skal vises (endnu).

Funktionen updateCookie bliver kaldt, når brugeren sætter/fjerner hakket i checkboxen.

Det skal i øvrigt fungere på både IE4.0+/NS4.0.7+

På forhånd tak!
Avatar billede benjax Nybegynder
25. februar 2003 - 12:37 #1
path=/ manglede i cookie-definitionen; derudover mangler der også slutanførselstegn. Endelig bør document.Ok=false ændres til document.Ok="false".
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