19. september 2002 - 09:08Der er
10 kommentarer og 1 løsning
Sæt og læs cookie
Jeg skal lave et funktion i javascript, der sætter en cookie, hvis der på clienten ikke i forvejen er sat en cookie. Cookien skal sættes til at udløbe efter 7 dage.
<SCRIPT language="JavaScript1.2"> <!-- Hide from older browsers
// Original JavaScript code by Duncan Crombie: dcrombie at chirp.com.au // Please acknowledge use of this code by including this header.
function getCookie(name) { // use: getCookie("name"); var re = new RegExp(name + "=([^;]+)"); var value = re.exec(document.cookie); return (value != null) ? unescape(value[1]) : null; }
var today = new Date(); var expiry = new Date(today.getTime() + 28 * 24 * 60 * 60 * 1000); // plus 28 days
function saet (name, value) { var argv = saet.arguments; var argc = saet.arguments.length; var dato = new Date(); var expires = new Date(dato.getTime() + 24 * 60 * 60 * 1000 * 7); var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); }
function hentKage2 (name) { var cook = document.cookie; var cookNavn = name + "="; var laengde = cook.length;
var start = 0; while (start < laengde) { var slut = start + cookNavn.length; if (cook.substring(start, slut) == cookNavn) { var vend = cook.indexOf (";", slut); if (vend == -1) vend = laengde;
function init(){ if(document.cookie){ tjeck = hentKage2('kagemand') if(tjeck==null){ saet('kagemand','hej fra Nikolaj') tjeck = hentKage2('kagemand') } }alert(tjeck) } --> </script> </head>
<body onload="init()" class="myBody">
<a href="#" onClick="saet('kagemand','hej fra Nikolaj')">Sæt svinet</a> (bliver dog sat automatisk - mest for at vise hvordan) <br> <a href="#" onClick="alert(hentKage2('kagemand'))">Hent dyret</a> </body> </html>
Har indsat nogle forskellige alerts - Dem fjerner du bare igen. Mest for at vise dig hvordan det fungerer. Desuden kom der lige en slette funktion med. Den fungerer ved at du kalder funktionen saet('kagen_navn','die'); - Skal du bruge værdien "die" - Så må du selv opfinde noget andet :)
/Nikolaj
<html> <head>
<script language="javascript"> <!--
function saet (name, value) { var argv = saet.arguments; var argc = saet.arguments.length; var dato = new Date(); if(value!="die"){ var expires = new Date(dato.getTime() + 24 * 60 * 60 * 1000 * 7); }else{ var expires = new Date(dato.getTime()); } var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); }
function hentKage2 (name) { var cook = document.cookie; var cookNavn = name + "="; var laengde = cook.length;
var start = 0; while (start < laengde) { var slut = start + cookNavn.length; if (cook.substring(start, slut) == cookNavn) { var vend = cook.indexOf (";", slut); if (vend == -1) vend = laengde;
function init(){ if(document.cookie){ tjeck = hentKage2('kagemand') if(tjeck==null){ alert("ingen cookie med navnet kagemand så vi bager en!"); saet('kagemand','hej fra Nikolaj') tjeck = hentKage2('kagemand') } }else{ alert ("ingen arme og der er ej heller kager!") saet('kagemand','hej fra Nikolaj') tjeck = hentKage2('kagemand') }alert(tjeck) } --> </script> </head>
<body onload="init()" class="myBody">
<a href="#" onClick="saet('kagemand','hej fra Nikolaj')">Sæt svinet</a> (bliver dog sat automatisk - mest for at vise hvordan) <br> <a href="#" onClick="alert(hentKage2('kagemand'))">Hent dyret</a> <br> <a href="#" onClick="saet('kagemand','die')">Dræb dyret</a> </body> </html>
Fik ikke tid til at se mere på det, da der lige kom en stak opgaver. Men jeg ser på det i morgen. Synes ikke du skulle vente så længe på point da du har lavet så meget for det :)
Lidt trals at man blev tvunget til at lave det client side da jeg er vandt til server side. Men siden køre med cache og derfor dutter serverside ikke her.
Jeg havde allerede lavet en version og havde den liggende, så det var mest at tilpasse den dit behov. Anyway har jeg godt af at læse op på cookies af og til :))
Hej Nikolaj. Der er et eller andet galt. Gider du lige kigger på det her kode:
<html> <head>
<script language="javascript"> <!--
function saet (name, value) { var argv = saet.arguments; var argc = saet.arguments.length; var dato = new Date(); var expires = new Date(dato.getTime() + 24 * 60 * 60 * 1000 * 7); var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); }
function hentKage2 (name) { var cook = document.cookie; var cookNavn = name + "="; var laengde = cook.length;
var start = 0; while (start < laengde) { var slut = start + cookNavn.length; if (cook.substring(start, slut) == cookNavn) { var vend = cook.indexOf (";", slut); if (vend == -1) vend = laengde;
oki doki. MM__open er en dreamweaver funktion - Stol ikke alt for meget på dem :)
Synes godt om
Ny brugerNybegynder
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.