Cookies überschreiben
Robert Bienert
- javascript
0 eddi
Moin!
Das beschriebene Problem existiert nicht mehr, nachdem ich die Split-Anweisung in
var kekse = document.cookie.split('; ');
geändert habe. Allerdings musste ich feststellen, dass KHTML-Browser u.U. (bei mir Safari 1.3.2) die nachträgliche Manipulation gesetzter Cookies per JavaScript nicht mögen – jedenfalls unter Verwendung dieses Codes:
if (document.cookie) {
var kekse = document.cookie.split('; ');
var w.open('about:blank', '_blank');
for(i = 0; i < kekse.length; ++i)
w.document.write('<input type="text" value="' + kekse[i] +
'" size="50">');
w.document.write('[code lang=html]<button type="button" onclick="
~~~' +
'`var ins=document.getElementsByTagName(\'input\');`{:.language-javascript}' +
'`for(i=0;i<ins.length;++i)document.cookie=ins[i].value;`{:.language-javascript}' +
'`window.close()`{:.language-javascript}`">Speichern</button>`{:.language-html}');
}
else
alert('Sie haben keine Cookies von dieser Seite.');[/code]
Ist hier irgendwo ein Fehler versteckt bzw. könntet ihr mal bitte dieses Bookmarklet ausprobieren (obiger Code in einer Zeile für Copy&Paste in die Adresszeile):
javascript:if(document.cookie){var kekse=document.cookie.split('; ');var w.open('about:blank','\_blank');for(i=0;i<kekse.length;++i)w.document.write('<input type="text" value="'+kekse[i]+'" size="50">');w.document.write('<button type="button" onclick="var ins=document.getElementsByTagName(\'input\');for(i=0;i<ins.length;++i)document.cookie=ins[i].value;window.close()">Speichern</button>');}else alert('Sie haben keine Cookies von dieser Seite.');
Vielen Dank und viele Grüße,
Robert
Moi moin!
[code lang=javascript]if (document.cookie) {
var kekse = document.cookie.split('; ');
var w.open('about:blank', '_blank');
^^^^^^
Bitte eine Variable vergeben!
for(i = 0; i < kekse.length; ++i)
w.document.write('<input type="text" value="' + kekse[i] +
'" size="50">');w.document.write('<button type="button" onclick="' +
'var ins=document.getElementsByTagName('input');' +
'for(i=0;i<ins.length;++i)document.cookie=ins[i].value;' +
'window.close();return false">Speichern</button>');
}
(ungetestet)
Gruß aus Berlin!
eddi
Moin!
var w.open('about:blank', '_blank');
^^^^^^
Bitte eine Variable vergeben!
Sorry, typo, eigentlich sollte da auch dies stehen:
var w = window.open('about:blank', '_blank');
w.document.write('<button type="button" onclick="' +
'var ins=document.getElementsByTagName('input');' +
'for(i=0;i<ins.length;++i)document.cookie=ins[i].value;' +
'window.close();return false">Speichern</button>');
}(ungetestet)
An dem zusätzlichen return false
liegt es leider auch nicht. Naja, so lange dieses Problem nicht total gravierend für meinen Bookmarklet-Artikel ist, reicht es, im Hinterkopf zu haben, dass es bei KHTML (genauer: KJS) Probleme geben kann.
Viele Grüße,
Robert