Hallo,
hab vor Jahren mal ein kleines Programm gemacht, das wohl genau das tut, was du suchst. Es erlaubt sogar "=" und ";" in den Strings:
// Cookie schreiben
// ----------------
function cookie_write (name, wert, verfall) {
var name, wert, verfall;
var n = name.replace(/=/g,"Ð");
n = n.replace(/;/g,"Ý");
var w = wert.replace(/=/g,"Ð");
w = w.replace(/;/g,"Ý");
var d = new Date();
var t = new Date(d.getTime() + verfall*1000);
document.cookie=n+"="+w+"Þ;expires="+t.toGMTString()+";" ;
}
//
// Cookie lesen
// ------------
function cookie_read (name) {
var name;
var n = name.replace(/=/g,"Ð");
n = n.replace(/;/g,"Ý")+"=";
var wert="";
var w=document.cookie;
// alert(w); // Test
var u=w.indexOf(n,0);
if (u > -1) {
u=u + n.length;
if (u>n.length) {
u=w.indexOf("Þ; "+n,0);
if (u>-1) {u=u+n.length+3} else {w=""};
}
w = w.substring(u,w.indexOf("Þ",u));
w = w.replace(/Ý/g,";");
wert = w.replace(/Ð/g,"=");
}
return wert;
}
Und hier ist ein kleines Test-Programm dazu:
...
<center>
<h2><br>Cookie-Schreib-Test<br> <br></h2>
<p>
Es wird ein Name (eine beliebige Zeichenfolge) eingegeben,<br>
ein zugehöriger Wert (auch eine beliebige Zeichenfolge)<br>
und ausserdem eine Verfallszeit in Sekunden, <br>
die angibt, wie lange die Zuordnung von Name und Wert gelten soll.<br>
Nach Anklicken von "Speichern" ist die Zuordnung als ein <i>Cookie </i>gespeichert.<br>
Durch Abfrage des richtigen Namens kann der Wert wiederbeschafft werden,<br>
solange die Verfallszeit nicht überschritten ist,<br>
auch wenn der Rechner zwischenzeitlich neu gestartet wurde.<br><br>
<form name="F1" onSubmit="cookie_write(
document.F1.N.value,
document.F1.W.value,
eval(document.F1.V.value)
)">
Name: <input type=text name="N" size=40 maxlength=256><br>
Wert: <input type=text name="W" size=40 maxlength=256><br><br>
Verfall: <input type=text name="V" size=40 maxlength=256><br><br>
<input type=submit value="Abspeichern"><br><br>
</form>
<form name="F2" onSubmit="alert(
document.F2.N.value
+ ' = '
+ cookie_read( document.F2.N.value)
)">
Name: <input type=text name="N" size=40 maxlength=256><br>
<input type=submit value="Lesen"><br><br>
</form>
<br><br>
</p>
</center>
...