TOP /このページのJavaScript ツリーメニュー(cookie)

cookieによりページを閉じる前の状態を保存して
次に開いたときに閉じる前の状態を再現します。(cookieは1日有効)
0親メニュー1

  • 0子メニューNo1
  • 3孫メニューNo1
  • 3孫メニューNo2
  • 0子メニューNo2
  • 3孫メニューNo1
  • 3孫メニューNo2
  • 3孫メニューNo3
  • 0子メニューNo3
  • 3孫メニューNo1
  • 3孫メニューNo2
  • 3孫メニューNo3
  • 3子メニューファイル
  • 0親メニュー2
  • 0子メニューNo1
  • 3孫メニューNo1
  • 3孫メニューNo2
  • 0子メニューNo2
  • 3孫メニューNo1
  • 3孫メニューNo2
  • 3孫メニューNo3
  • 0子メニューNo3
  • 3孫メニューNo1
  • 3孫メニューNo2
  • 3孫メニューNo3
  • 3子メニューファイル

  • <style type=text/css><!--
    LI { list-style-type:none; }
    A { text-decoration:none; }
    A span{font-family:wingdings;}
    dir span{font-family:wingdings;}
    --></style>
    <script type="text/javascript" ><!--
    
    theName="test_menu=";                           //cookie名を変更
    S_Array=new Array("treeMenu1");   //初めに表示するID名 ,"ID名" と増やします
    d_Array=S_Array;
    
    function MyMenu_set(){
    if(document.all)
    menu_obj=document.all.tags("div");
    else
    menu_obj=document.getElementsByTagName("div");
    for(i=0;i<menu_obj.length;i++){
    if(menu_obj[i].className=="display_none")
    menu_obj[i].style.display="none";
    }
     theCookie=document.cookie+";";
     start=theCookie.indexOf(theName);
    if(start !=-1){
      end=theCookie.indexOf(";",start);
      theData=unescape(theCookie.substring(start+theName.length,end));
      d_Array=theData.match(/[^,]+/g);
    }
    if(d_Array=="all_none"){
      d_Array=new Array();
      return;
    }
    try {
     for(i=0;i<d_Array.length;i++){
       if(document.all){
    document.all(d_Array[i]).style.display="block";
    document.all("f_"+d_Array[i]).innerHTML="1";
        }else{
    document.getElementById(d_Array[i]).style.display="block";
    document.getElementById("f_"+d_Array[i]).innerHTML="1";
        }
      }
    }catch(e) {d_Array=new Array();}
    }
    
    function MyMenu(tName){
      j=0;
       if(document.all){
          tMenu=document.all(tName).style;
          Icon=document.all("f_"+tName);
       }else{
          tMenu=document.getElementById(tName).style;
          Icon=document.getElementById("f_"+tName);
        }
    if(tMenu.display=='none'){
      tMenu.display="block";
      Icon.innerHTML="1";
      for(i=0;i<d_Array.length;i++){if(tName==d_Array[i])j++;}
      if(!j)d_Array.push(tName);
    }else{
      tMenu.display="none";
      Icon.innerHTML="0";
      for(i=0;i<d_Array.length;i++){if(tName==d_Array[i])j=i;}
      d_Array.splice(j, 1);
    }
    }
    function MyMenu_close(){
      myData="";setDay=new Date();
     myData=(!d_Array.length)?"all_none":d_Array.join(",");
     setDay.setTime(setDay.getTime()+(1*1000*60*60*24));
    document.cookie=theName+escape(myData)+";expires="+setDay.toGMTString();
    }
    function firstMenu(){
     setDay=new Date();myData="";
     d_Array=S_Array;
     myData=(!d_Array.length)?"all_none":d_Array.join(",");
     setDay.setTime(setDay.getTime()+(1*1000*60*60*24));
     document.cookie=theName+escape(myData)+";expires="+setDay.toGMTString();
    location.reload(true);
    }/* himajin.moo.jp */
    // --></script>
    
    -----ここまでをHEAD内にコピー-----
    <body onload="MyMenu_set()"onUnload="MyMenu_close()">
    
    -----ここから下を修正してBODY内に記述してください------
    <a href="JavaScript:MyMenu('treeMenu1')"><span id="f_treeMenu1">0</span>親メニュー1</a><br>
      <div id="treeMenu1"class="display_none">
        <dir>
         <a href="JavaScript:MyMenu('koMenu1')"><LI><span id="f_koMenu1">0</span>子メニューNo1</a>
            <div id="koMenu1"class="display_none">
             <dir>
             <LI><span>4</span>孫メニューNo1
             <LI><span>4</span>孫メニューNo2
             </dir>
            </div>
         <a href="JavaScript:MyMenu('koMenu2')"><LI><span id="f_koMenu2">0</span>子メニューNo2</a>
            <div id="koMenu2"class="display_none">
             <dir>
             <LI><span>4</span>孫メニューNo1
             <LI><span>4</span>孫メニューNo2
             <LI><span>4</span>孫メニューNo3
             </dir>
            </div>
        <a href="JavaScript:MyMenu('koMenu3')"><LI><span id="f_koMenu3">0</span>子メニューNo3</a>
            <div id="koMenu3"class="display_none">
             <dir>
             <LI><span>4</span>孫メニューNo1
             <LI><span>4</span>孫メニューNo2
             <LI><span>4</span>孫メニューNo3
             </dir>
            </div>
        <LI><span>4</span>子メニューファイル
        </dir>
      </div>
    

    赤文字の3箇所は、ハイフン(-)、アンダーバー(_)、コロン(.)、ピリオド(.)を
    含む半角英数文字列で、最初の1文字は半角英文字で全て同じにします。