Problem mit Menuscript mit Cookie
Michael
- javascript
0 Michael
Hallo,
Ich bin am verzweifeln, ich habe folgendes Script erstellt und es geht einfach nicht:
var Menu = new Array;
Menu[0] = new Array;
Menu[0][0] = "Links";
Menu[0][1] = "LinksZeigen";
Menu[1] = new Array;
Menu[1][0] = "Counter";
Menu[1][1] = "CounterZeigen";
Menu[2] = new Array;
Menu[2][0] = "Version";
Menu[2][1] = "VersionZeigen";
Menu[3] = new Array;
Menu[3][0] = "Auszeichnungen";
Menu[3][1] = "AuszeichnungenZeigen";
function MenuLaden(ArrayCount){
if(document.cookie.indexOf(ArrayCount + "=false") == -1){
Menu[ArrayCount][2] = true;
}else{
Menu[ArrayCount][2] = false;
}
}
function MenuSpeichern(ArrayCount) {
document.cookie = ArrayCount + "=" + Menu[ArrayCount][2] + "; expires=" + (new Date(new Date().getTime() + (1000*60*60*24*365))).toGMTString() + ";";
}
function LadeWebseite(){
if(top != self){
top.location = self.location;
}
MenuLaden(0);
MenuZeigen(0, false);
MenuLaden(1);
MenuZeigen(1, false);
MenuLaden(2);
MenuZeigen(2, false);
MenuLaden(3);
MenuZeigen(3, false);
}
function MenuZeigen(ArrayCount, ChangeValue){
if(ChangeValue == true){
if(Menu[ArrayCount][2] == true){
Menu[ArrayCount][2] = false;
}else{
Menu[ArrayCount][2] = true;
}
}
if(DHTML){
var Obj = getElem("id", Menu[ArrayCount][0], null);
if(Obj.style.display == "block" && Menu[ArrayCount][2] == false){
Obj.style.display = "none";
setCont("id", Menu[ArrayCount][1], null, "[Einblenden]");
}else{
Obj.style.display = "block";
setCont("id", Menu[ArrayCount][1], null, "[Ausblenden]");
}
}
MenuSpeichern(ArrayCount);
return false;
}
Ich möchte erreichen, dass der User einige längere Menus ein- und ausblenden kann und die getroffene Entscheidung soll über über Cookies hinweg erhalten bleiben. Das Erstellen der Cookies funktioniert, das ein- und ausblenden der einzelnen Menus auch. Aber ausgeblendete Menus werden trotzdem eingeblendet!
Was mache ich falsch?
In diesem Script habe ich die allgemeine DHTML-Bibliothek von SelfHTML verwendet.
Gruß, Michael
Habe mein Problem selbst gelöst...
Hier das neue Script:
var Menu = new Array;
Menu[0] = new Array;
Menu[0][0] = "Links";
Menu[0][1] = "LinksZeigen";
Menu[1] = new Array;
Menu[1][0] = "Counter";
Menu[1][1] = "CounterZeigen";
Menu[2] = new Array;
Menu[2][0] = "Version";
Menu[2][1] = "VersionZeigen";
Menu[3] = new Array;
Menu[3][0] = "Auszeichnungen";
Menu[3][1] = "AuszeichnungenZeigen";
function LadeWebseite(){
if(top != self){
top.location = self.location;
}
MenuLaden(0);
MenuZeigen(0);
MenuZeigen(0);
MenuLaden(1);
MenuZeigen(1);
MenuZeigen(1);
MenuLaden(2);
MenuZeigen(2);
MenuZeigen(2);
MenuLaden(3);
MenuZeigen(3);
MenuZeigen(3);
}
function MenuLaden(ArrayCount){
if(getCookie(ArrayCount) == "0"){
Menu[ArrayCount][2] = false
}else{
Menu[ArrayCount][2] = true
}
}
function MenuZeigen(ArrayCount){
if(Menu[ArrayCount][2] == true){
Menu[ArrayCount][2] = false;
}else{
Menu[ArrayCount][2] = true;
}
if(DHTML){
var Obj = getElem("id", Menu[ArrayCount][0], null);
if(Obj.style.display == "block" && Menu[ArrayCount][2] == false){
Obj.style.display = "none";
setCont("id", Menu[ArrayCount][1], null, "[Einblenden]");
setCookie(ArrayCount, "0");
}else{
Obj.style.display = "block";
setCont("id", Menu[ArrayCount][1], null, "[Ausblenden]");
setCookie(ArrayCount, "1");
}
}
return false;
}
function setCookie(name, wert, domain, expires, path, secure){
var cook = name + "=" + unescape(wert);
cook += (domain) ? "; domain="+ domain : "";
cook += (expires) ? "; expires="+expires : "";
cook += (path) ? "; path="+path : "";
cook += (secure) ? "; secure" : "";
document.cookie = cook;
}
function getCookie(name){
var i=0 //Suchposition im Cookie
var suche = name+"="
while (i<document.cookie.length){
if (document.cookie.substring(i, i+suche.length)==suche){
var ende = document.cookie.indexOf(";", i+suche.length)
ende = (ende>-1) ? ende : document.cookie.length
var cook = document.cookie.substring(i+suche.length, ende)
return unescape(cook)
}
i++
}
return null
}
Gruß, Michael