Cookie-Problem
Christoph
- javascript
Hallo,
habe folgendes vor:
Jemand kommt auf meine Seite, wenn bei diesem noch kein Cookie "navigation=" vorhanden ist, sollte das Cookie "navigation=" mit dem Wert "1" geschrieben werden, was auch soweit funktioniert.
Wenn aber das Cookie "navigation=" mit dem Wert "2" überschrieben wird (z.B. durch Anklicken eines Links...), sollte sich die CSS-Datei dabei auf "2.css" ändern.
Wenn das Cookie wieder auf den Wert "1" gesetzt wird, dann sollte die CSS-Datei "1.css" lauten.
Ich habe mal etwas gescriptet, dass aber nicht 100%ig funktioniert:
function test() {
if(document.cookie.indexOf('navigation=')== 1) {
document.getElementById("CSS").href = "1.css";
}
if(document.cookie.indexOf('navigation=')== 2) {
document.getElementById("CSS").href = "2.css";
}
else {
if(document.cookie.indexOf('navigation=')== -1) {
CookieSetz('navigation','1'); // das Cookie-Setzen funktioniert, poste deswegen den Code dieser Funktion hier nicht!
}
}
}
Kann jemand bitte posten, wie der Code richtig lauten müsste??
Danke,
Christoph ;-)
Hi,
Ich habe mal etwas gescriptet, dass aber nicht 100%ig funktioniert:
und "funktioniert nicht 100%ig" bedeutet auf Deutsch bitte was?
if(document.cookie.indexOf('navigation=')== 1) {
Dies kann eigentlich nur gegeben sein, wenn der (zufällig) erste Cookie einen Namen besitzt, der ab der zweiten Stelle "navigation" heißt, also z.B. "xnavigation". Ich bin mir nicht sicher, ob es eine verlässliche (und verlässlich implementierte) Festlegung gibt, nach der ein Client Cookies in einer bestimmten Reihenfolge bereitzustellen hat.
Cheatah
Ich habe mal etwas gescriptet, dass aber nicht 100%ig funktioniert:
und "funktioniert nicht 100%ig" bedeutet auf Deutsch bitte was?
das bedeutet eben, dass es nicht vollständig funktioniert ;-)
if(document.cookie.indexOf('navigation=')== 1) {
Dies kann eigentlich nur gegeben sein, wenn der (zufällig) erste Cookie einen Namen besitzt, der ab der zweiten Stelle "navigation" heißt, also z.B. "xnavigation". Ich bin mir nicht sicher, ob es eine verlässliche (und verlässlich implementierte) Festlegung gibt, nach der ein Client Cookies in einer bestimmten Reihenfolge bereitzustellen hat.
Und wie müsste ich dann deiner Meinung nach den Code abändern?
Wäre auf deine erneute Antwort sehr dankbar.
Christoph
Moin Moin!
Ich habe mal etwas gescriptet, dass aber nicht 100%ig funktioniert:
und "funktioniert nicht 100%ig" bedeutet auf Deutsch bitte was?
das bedeutet eben, dass es nicht vollständig funktioniert ;-)
Konkret: Welche Funktion erwartest Du, was passiert stattdessen? Neulich hat ein Troll sämtliche Kristallkugeln der Forumsteilnehmer zerschlagen. Du wirst also nicht mehr darum herumkommen, dein Problem ganz traditionell für andere verständlich zu erklären.
Und wie müsste ich dann deiner Meinung nach den Code abändern?
So wie Cheatah es beschrieben hat. Lies sein Posting nochmal durch. Cheatah hilft gerne, aber er wird Dir das Denken nicht abnehmen. Im Gegenteil: Bei Denkverweigerung wirst Du sehr schnell en Katzenspielzeug.
Alexander
Grundlage für Zitat #968.
Hi,
das bedeutet eben, dass es nicht vollständig funktioniert ;-)
"funktioniert nicht" und analoge Formulierungen haben nicht mal im Ansatz etwas mit einer Fehlerbeschreibung zu tun. Um den Spieß mal umzudrehen:
Und wie müsste ich dann deiner Meinung nach den Code abändern?
So, dass er funktioniert.
Wäre auf deine erneute Antwort sehr dankbar.
Hier ist SELFHTML, nicht GETHTML. Du wirst eigene Leistung erbringen müssen, wenn Du Hilfe erhalten möchtest. Beachte auch Alexanders Hinweise bezüglich meiner Affinität zu Katzen.
Cheatah
Hallo,
Wenn du schon so eine schöne »CookieSetz«-Funktion hast, kannst du dir auch gleich eine »CookieGib«-Funktion schreiben. Das haben dir andere schon abgenommen, da findest du, wenn du mal googlest, bereits massig im Web. Zum Beispiel diese hier:
function getCookie (name) {
var name_index = document.cookie.indexOf(name + "=");
if (name_index == -1)
return null;
var value_index = name_index + name.length + 1;
var end = document.cookie.indexOf(";", value_index);
if (end == -1)
end = document.cookie.length;
var value = decodeURIComponent(document.cookie.substring(value_index, end));
return value;
}
-> getCookie("navigation")
Trotzdem solltest du dir http://de.selfhtml.org/javascript/objekte/string.htm durchlesen, insbesondere den Teil zu http://de.selfhtml.org/javascript/objekte/string.htm#index_of@title=indexOf und http://de.selfhtml.org/javascript/objekte/string.htm#substring@title=substring, denn dein eigener Code zeigt da massive Missverständnisse auf.
Mathias
Hi,
function getCookie (name) {
var name_index = document.cookie.indexOf(name + "=");
Unguenstig, wenn ggf. weitere Cookies existieren sollten, deren Name auf name endet - da wuerde dir einfach der erste solche zurueckgegeben werden, obwohl er nicht der gesuchte ist.
MfG ChrisB