Klappmenu aufgeklappt lassen mit Cookies

flashOr

Erfahrenes Mitglied
Hallo!
Ich möchte wie schon im Titel steht eine Liste aufgeklappt lassen wenn sie einmal aufgeklappt wurde. Also der Zustand wie die Seite verlassen wurde soll beim nächsten Besuch so wieder hergestellt werden. Ich kriege es aber einfach nicht hin :(
Der JS Teil:
Code:
<!--
a = get_cookie('bluebook');
if(a=='open') {
		document.getElementById('bluebook').style.display = 'block';
	}
function switchlayer(id)
{
 if(document.getElementById(id).style.display == 'none')
 {
  document.getElementById(id).style.display = 'block';
  set_cookie(id,'open',10);
 }
 else
 {
  document.getElementById(id).style.display = 'none';
  set_cookie(id,'close',10);
 }
}
function get_cookie( cookieName )
{
    strValue = false;
    
    if( strCookie = document.cookie )
        {
            if( arrCookie = strCookie.match( new RegExp( cookieName + '=([^;]*)', 'g')))
                {
                    strValue=RegExp.$1;
                }
        }
    return(strValue);
}
function set_cookie(cookieName,cookieValue,intDays)
{
    if(!is_cookie_enabled())
        {
            return false;
        }
        
    objNow = new Date();
    strExp = new Date( objNow.getTime() + ( intDays * 86400000) );
    document.cookie = cookieName + '=' + 
                      cookieValue + ';expires=' + 
                      strExp.toGMTString() + ';';
    return true;
}
function delete_cookie(cookieName)
{
    if(document.cookie)
        {
            document.cookie = cookieName + '=' +
                              get_cookie(cookieName) +
                              ';expires=Thu, 01-Jan-1970 00:00:01 GMT;'; 
            return true;
        }
    return false;
} 
function is_cookie_enabled()
{
    if(typeof navigator.cookieEnabled!='undefined')
        {
            return navigator.cookieEnabled;
        }
    
    set_cookie('testcookie','testwert',1);
    
    if(!document.cookie)
        {
            return false;
        }
    
    delete_cookie('testcookie');
    return true;        
}
//-->
Der HTML Teil:
Code:
<ul>
<li><a href="#" onclick="javascript:switchlayer('bluebook');
  		 return false; ">Bluebook</a></li>
<ul id="bluebook" type="circle" style="display:none;">
...
 
Zuletzt bearbeitet:
Wo steht denn der Skript-Teil?
Vor oder hinter der Liste?

zumindest dies:
Code:
a = get_cookie('bluebook');
if(a=='open') {
		document.getElementById('bluebook').style.display = 'block';
	}
...muss hinter der Liste stehen...damit sie bereits bekannt ist, wenn darauf zugegriffen wird.


Mein Tutorial dazu hast du ja schon entdeckt, wie es scheint :)
 
Mhh, bis jetzt wird das Skript ausgeführt wenn die Seite geladen wird. Wie kann ich denn das Skript ausführen wenn die Seite fertig aufgebaut ist ohne eine User Interaktion?
 
Wie gesagt, packe das Skript irgendwo hinter die Liste.
Es muss nicht die ganze Seite geladen sein...nur die Liste muss bekannt sein, und das ist sie, wenn die genannte Passage des Skriptes hinter der Liste steht.

So ein Dokument liest der Browser von oben nach unten ;)
 
Sry, aber ich stehe wirklich grade voll auf dem Schlauch! :-(
Muss das Skript nicht im <head> Teil der Seite stehen?
 
Ahh! Jetzt hab ich es. Ich kann das <script type="text/javascript"> überall hinpacken.
Alles klar, jetzt funktioniert das auch. Ich danke dir vielmals, hast meinen Tag gerettet. Eigentlich bin ich in anderen Sprachen zu Hause. Ok, also danke!
 

Neue Beiträge

Zurück