<mce:script type="text/javascript"><!-- function maketoc(){ var container = document.getElementById("toc");//目录 if(!container) return; var sections = []; //内容 findSections(document, sections); //取 内容 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 < sections.length; s++){ var section = sections[s]; var level = parseInt(section.tagName.charAt(1));// h1 level=1 if(isNaN(level) || level < 1 || level > 6) continue; sectionNumbers[level-1]++; //该level数组下标+1 for(var i = level; i<6; i++) sectionNumbers[i] = 0;// level后所有归零 var sectionNumber = "";//要显示章节,如1.1 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 = "#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 = "#TOC" + sectionNumber; link.innerHTML = section.innerHTML; var entry = document.createElement("div"); entry.className = "TOCEntry TOCLevel"+level; entry.appendChild(link); container.appendChild(entry); } function findSections(n, sects){//除去toc的,非elementnode,非"P",以"H"开头的node 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.length ==2 && m.tagName.charAt(0)=="H") sects.push(m); else findSections(m, sects); } } } maketoc.backlinkText = "Contents"; if(window.addEventListener) window.addEventListener("load", maketoc, false) else if(window.attachEvent) window.attachEvent("onload", maketoc) // --></mce:script> <mce:style type="text/css"><!-- #toc{/*these styles apply to the TOC container*/ background: #ddd; border: solid black 1px; margin: 10px; padding: 10px; } .TOCEntry{ font-family: sans-serif;} .TOCEntry a{ text-decoration: none;} .TOCLevel1{ font-size: 16pt; font-weight: bold;} .TOCLevel2{ font-size: 12pt; margin-left: .2in;} .TOCLevel3{ font-size: 11pt; margin-left: .4in;} .TOCBackLink{ display: block;} .TOCSectNum:after{ content: ":";} --></mce:style><style type="text/css" mce_bogus="1"> #toc{/*these styles apply to the TOC container*/ background: #ddd; border: solid black 1px; margin: 10px; padding: 10px; } .TOCEntry{ font-family: sans-serif;} .TOCEntry a{ text-decoration: none;} .TOCLevel1{ font-size: 16pt; font-weight: bold;} .TOCLevel2{ font-size: 12pt; margin-left: .2in;} .TOCLevel3{ font-size: 11pt; margin-left: .4in;} .TOCBackLink{ display: block;} .TOCSectNum:after{ content: ":";} </style> </head> <body> <div id="toc"><h1>Table Of Contents</h1></div> <h1>h1</h1> <p>1234</p> <h2>h2</h2> <span>1234 </span> <h3>h3 </h3> <p>1234</p> <h3>h3 </h3> <p>1234</p> <h1>h1</h1> <p>1234</p> <h2>h2</h2> <span>1234 </span> </body> 很实用的编程思想