makeToc.js
window.onload =function(){
if (d.toc===1) {
maketoc();
}
};
var maketoc=function(){
var locat = location.href;
var locat_array = [];
locat_array = locat.split('/');
locat_array.pop();
var locat = locat_array.join('/');
var container = document.getElementById('page_navi_ol');
if (!container) return;
var target = document.getElementById('layer_1');
if(!target) return;
var h_lists = [];
findSections(target, h_lists);
var anchor = document.createElement('a');
anchor.name = "TOCtop";
anchor.id = "TOCtop";
container.parentNode.insertBefore(anchor, container);
var sectionNumbers = [0, 0, 0, 0, 0, 0];
for (var s = 0; s < h_lists.length; s++) {
var section = h_lists[s];
var level = parseInt(section.tagName.charAt(1));
if (isNaN(level) || level < 1 || level > 6)
continue;
sectionNumbers[level-1]++;
for (var i = level; i < 6; i++) sectionNumbers[i] = 0;
var sectionNumber = "";
for (i = 0; i < level; i++) {
sectionNumber += sectionNumbers[i];
if (i < level - 1)
sectionNumber += ".";
}
var frag = document.createDocumentFragment();
var span = document.createElement('span');
span.className = "TOCSectNum";
span.appendChild(document.createTextNode(sectionNumber));
frag.appendChild(span);
frag.appendChild(document.createTextNode(" "));
section.insertBefore(frag, section.firstChild);
var anchor = document.createElement('a');
anchor.name = "TOC" + sectionNumber;
anchor.id = "TOC" + sectionNumber;
var link = document.createElement("a");
link.href = locat+"/#TOCtop";
link.className = "TOCBackLink";
link.appendChild(document.createTextNode(maketoc.backlinkText));
anchor.appendChild(link);
section.parentNode.insertBefore(anchor, section);
var link = document.createElement('a');
link.href = locat+"/#TOC" + sectionNumber;
link.innerHTML = section.innerHTML;
var entry = document.createElement('li');
entry.className = "TOCEntry TOCLevel" + level;
entry.appendChild(link);
container.appendChild(entry);
}
function findSections(n, h_list){
for (var m = n.firstChild; m != null; m =m.nextSibling) {
if (m.nodeType != 1 )
continue;
if (m == container)
continue;
if (m.tagName == "P")
continue;
if(m.tagName == "HR")
continue;
if (m.tagName.length == 2 && m.tagName.charAt(0) == 'H') {
h_list.push(m);
}
else {
findSections(m, h_list);
}
}
}
}
maketoc.backlinkText ="content";
makeToc.css
#page_navi{
border:solid 1px #7697D6;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
margin:5px;
padding:5px;
}
#page_navi header{
text-align:center;
background:#dedede;
}
#page_navi ol li{
font-size:1.5em;
width:140px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
-webkit-text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}