「SandBox」の編集履歴(バックアップ)一覧に戻る

SandBox - (2009/07/25 (土) 19:13:26) のソース

#include_js(http://www39.atwiki.jp/aslike/pub/Script/javascript-xpath.js)

//data---------------------------------------------------------------------------------------
&html(<ul id="root" class="tree"><li>Hint & Tips For Ver1.5x)

#divid(menuitems){{{{{
-1
--2
--3
---4
--5
---6
-7
--8

}}}}}

&html(</li></ul>)

//javascript---------------------------------------------------------------------------------------

#javascript(){{{{{{

window.onunload = function(){
  var docdata = document.getElementById("dust");
  var menudata = document.evaluate("//div[contains(@id,'hat15xmenu')]" ,docdata,null ,7 ,null);

  var menuitems = document.getElementById("menuitems");

  menuitems.innerHTML = menudata.snapshotItem(0).innerHTML;
  docdata.innerHTML = "";

  var root = document.getElementById("root");
  var ulNodes= document.evaluate('li//ul' ,root ,null ,7 ,null);

  for(var ulIdx = 0; ulIdx < ulNodes.snapshotLength; ulIdx++){
    var liNodes = document.evaluate('li',ulNodes.snapshotItem(ulIdx),null ,7 ,null);
    liNodes.snapshotItem(liNodes .snapshotLength - 1).className = "lastitem";
  }


  var folderLiNodes= document.evaluate('//li[ul]' ,root ,null ,7 ,null);
  for(var liIdx = 0; liIdx < folderLiNodes.snapshotLength; liIdx++){
    var treeswitch = document.createElement("span");
    treeswitch.className = "treeswitch expanded";
    treeswitch.isExpanded = true;
    treeswitch.onclick = function(){toggleExcerpt(this);};
    
    var parentNode = folderLiNodes.snapshotItem(liIdx);
    parentNode.insertBefore(treeswitch,parentNode.firstChild);
  }

  var treeswitchNodes= document.evaluate("li//span[contains(@class,'treeswitch')]" ,root ,null ,7 ,null);
  var cookieDatas = document.cookie.split("; ");
  var isExpandedDataStr = "";
  for (var cookieDataIdx=0; cookieDataIdx<cookieDatas.length; cookieDataIdx++){
    if (cookieDatas[cookieDataIdx].substr(0,20) == "treemenuExpandState="){
      isExpandedDataStr = cookieDatas[cookieDataIdx].substr(20,cookieDatas[cookieDataIdx].length);
      break;
    }
  }
  var isExpandedDataStrs = isExpandedDataStr.split(",");
  var isExpandedData = new Array();
  for(var isExpandedDataIdx=0; isExpandedDataIdx < isExpandedDataStrs.length; isExpandedDataIdx++){
    isExpandedData.push(isExpandedDataStrs[isExpandedDataIdx] == "true");
  }

  if(isExpandedData.length == treeswitchNodes.snapshotLength){
    for(var treeswitchIdx= 0; treeswitchIdx< treeswitchNodes.snapshotLength; treeswitchIdx++){
      var treeswitch = treeswitchNodes.snapshotItem(treeswitchIdx);
      if(!isExpandedData[treeswitchIdx]){
        toggleExcerpt(treeswitch);
      }
    }
  }
};

window.onunload = function(){
  var root = document.getElementById("root");
  var treeswitchNodes= document.evaluate("li//span[contains(@class,'treeswitch')]" ,root ,null ,7 ,null);
  var isExpandedData = new Array();
  for(var treeswitchIdx= 0; treeswitchIdx< treeswitchNodes.snapshotLength; treeswitchIdx++){
    var treeswitch = treeswitchNodes.snapshotItem(treeswitchIdx);
    isExpandedData.push(treeswitch.isExpanded);
  }
  document.cookie = "treemenuExpandState=" + isExpandedData.join(",") + ";";
};

}}}}}}
記事メニュー
目安箱バナー