---
title: "Cookie"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/16993-cookie"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "webbmannen"
published: "2000-07-26T13:52:00.000Z"
updated: "2000-07-28T22:50:00.000Z"
replies: 8
views: 278
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/16993-cookie"
---

# Cookie

## #1 — webbmannen, 2000-07-26T13:52Z

Kommer skriptet nedan att sätta en kaka på besökarens dator om denne bockat i checkbox-rutan som finns med på sidan, och om inte, så stängs bara fönstret?

Mao. har jag skrivit rätt?

```
<script language="JavaScript">
<!--
function writecookie()
{
datum = new Date();
datum.setTime(datum.getTime()+(1000*60*60*24*90));
document.cookie="KAKAN=God;expires="+datum.toGMTString();
}

	function checkandclose()
	{
	If(document.form.checkbox.checked==true)
	writecookie();
	document.close;
	{
	Else
	}
	document.close;
	}
//-->
</script>
```

/webb

Permalänk: https://www.webforum.nu/p/16993

## #2 — spango, 2000-07-26T20:57Z

Nej.

```
<script language="JavaScript">
<!--
function writecookie()
{
datum = new Date();
datum.setTime(datum.getTime()+(1000*60*60*24*90));
document.cookie="KAKAN=God;expires="+datum.toGMTString();
}
function checkandclose()
{
if(document.form.checkbox.checked==true)writecookie();
else [b]top[/b].close();
}
//-->
</script>
```

Permalänk: https://www.webforum.nu/p/327311

## #3 — webbmannen, 2000-07-27T07:26Z

Det känns som om man utelämnar lite så som du skrivit Spango :o

För att förtydliga ytterligare och vara säker på att förstå:

Med en onLoad-funktion så öppnas ett litet fönster när besökaren går in på indexsidan. I detta fönster så får man lite info som man sedan ska kunna slippa se nästa gång man går in. Detta genom att man bockar för checkbox-rutan som finns med. Om man INTE bockar i och stänger fönstret med stäng-knappen så kommer rutan upp nästa gång också.

Du har använd ordet **top** på ett sätt som jag inte känner till. Är det detta som "do the trick" :q

/webb

Permalänk: https://www.webforum.nu/p/327312

## #4 — webbmannen, 2000-07-27T17:48Z

Testat utan önskat resulat :(

Jag har läst på under dagen och vet nu vad "top" är och hör hemma i hierarkin, men min kod gör inte som jag vill.

Det går inte att stänga popupfönstret med stängknappen (som har onClick="checkandclose();" med sig) - vad är fel?

```
<html>
<head><title>popupsidan</title>

<script language="JavaScript">
<!--
function writecookie()
{
datum = new Date();
datum.setTime(datum.getTime()+(1000*60*60*24*90));
document.cookie="KAKAN=God;expires="+datum.toGMTString();
}

function checkandclose()
{
If(document.form0.bock.checked==true)
writecookie();
top.close();
}
Else
{
top.close();
}
//-->
</script>

</head>
<body>
<font face="verdana,arial" size="2">
<b>Observera</b> att flertalet av våra produktbilder är "klickbara" och kan ses i större format.
</font>
<form name="form0">
<center>
<input type=button value="Stäng detta fönster" onClick="checkandclose();">
</center><br>
<input type=checkbox name="bock">
<font face="verdana,arial" size="1">
Kryssa i här om du inte vill se detta meddelande igen.
</font>
</form>
</body>
</html>
```

Så lite kod borde inte få bråka så :l

/webb

Permalänk: https://www.webforum.nu/p/327313

## #5 — jiikoo, 2000-07-27T18:55Z

hejsanär svaret

Permalänk: https://www.webforum.nu/p/327314

## #6 — webbmannen, 2000-07-27T19:53Z

Kul :(

Permalänk: https://www.webforum.nu/p/327315

## #7 — spango, 2000-07-27T23:07Z

Ajajaj! Du stavar **if** med stort i.
if skare va, inte If...

**\[tillägg\]**
En generell cookiehanteringsfunktion eller två är alltid väl spenderad tid.
Efter att ha läst igenom ditt inlägg noggrannare kom jag fram till följande. I popupen:

```
/******************
bakaKaka(): Skapar en kaka som består antal angivet antal dagar
Anropas: bakaKaka("Kakans namn", "Kakans innehåll", "Kakans livslängd i dagar");
Exempel: bakaKaka("Namn", "Spango", 365);
******************/
function bakaKaka(titel, str, dagar){
	str = escape(str);//URL-kodar alla konstiga tecken
	titel = escape(titel);
	var expstring = "";
	if(dagar){
		dagar *= 1000 * 60 * 60 * 24;
		
		var exp = new Date();
		exp.setTime(exp.getTime() + dagar);
		expstring = "; Expires=" + exp.toGMTString();
		}
	document.cookie = titel + "=" + str + expstring;
	}

/******************
bakaKaka(): Hämtar en kaka med angivet namn
Returnerar: Kakans innehåll om något finns, annars tom sträng
Anropas: smakaKaka("Kakans namn");
Exempel: if(smakaKaka("Namn")) document.write("Hej " + smakaKaka("Namn") + "!");
******************/
function smakaKaka(titel){
	titel = escape(titel) + "=";
	if(document.cookie.indexOf(titel) == -1) return "";
	
	kaka = document.cookie.substr(document.cookie.lastIndexOf(titel));
	kaka = kaka.substr(titel.length);
	slut = (kaka.indexOf(';') == -1) ? kaka.length : kaka.indexOf(';');
	kaka = kaka.substring(0, slut);
	
	return unescape(kaka);
	}

function checkandclose()
{
if(document.form0.bock.checked)
bakaKaka("VISA_POPUP", "nix", 3650);
top.close();
}
```

och sen när man ska bestämma om poppupen ska öppnas eller ej:

```
if(smakaKaka("VISA_POPUP") != 'nix')//öppna popupen
else // gör nåt annat
```

**\[/tillägg\]**

Permalänk: https://www.webforum.nu/p/327316

## #8 — webbmannen, 2000-07-28T06:02Z

\[bakläxa\] webb skriver if med liten bokstav 100 ggr \[/bakläxa\]

\[ny läxa\] se till att begripa spangos script ordentligt (varenda stavelse) \[/ny läxa\]

Stort tack spango :)

Redigerat till litet "s" i spango ;)

/webb

\[Redigerat av webbmannen den 28 jul 2000\]

Permalänk: https://www.webforum.nu/p/327317

## #9 — spango, 2000-07-28T22:50Z

Tackar webbis, ja blir så varm i hjärtat när jag ser nån stava mitt namn med litet "s"! ;) 

Angående scriptet:
Det är inte så krångligt (men jag vart tvungen att uppdatera bakaKaka() lite - lägg in den nya versionen på din sida).

**bakaKaka()** tar två eller tre argument. Det första är namnet på kakan, det andra är kakans värde, och det tredje, frivilliga, argumentet är livslängden på kakan i dagar.
Först URL-kodas namn och värd med **escape()**, eftersom kakor inte får innehålla mellanslag eller semikolon (och URL-kodning är det rekommenderade sättet att undvika dessa tecken).
Sen instantieras ett **Date**\-objekt med för aktuell tid.
Efter det omvandlas dagarna som kakan ska leva (om några skickats) till millisekunder. Efter det läggs dessa millisekunder till det aktuella datumet.
Sen bakas bara allt ihop till en sträng som motsvarar en kaka...

**smakaKaka()** söker igenom document.cookie efter argumentet som skickats, följt av likhetstecken, och returnerar strängen efter det, till närmaste semikolon eller, om inget finns, strängens slut, avkodat. Om document.cookie ser ut så här:
**BLAH=yak; BLAINE=pain; ALLTHESTUFF=The%20same**
så returneras "yak" om man skickar "BLAH" som argument, skickar man "BLAINE" får man tebax "pain", och skickar man "ALLTHESTUFF" får man tebax "The same" (eftersom **%20** är URL-koden för mellanslag). Alla som läst "The Waste Lands" av Stephen King vet vad jag pratar om ;)

[Mer om cookies](http://home.netscape.com/newsref/std/cookie_spec.html)

Permalänk: https://www.webforum.nu/p/327318

---

Tråden på webben: https://www.webforum.nu/amne/javascript/16993-cookie
