zoukankan      html  css  js  c++  java
  • 博客园自动循环创建索引目录JS

    对于比较长的文章,有一个好的目录索引是很有必要的,可以让读者比较清楚地了解文章内容和层次。然而,目前(2015.7)博客园不像csdn博客那样,会对发布的文章自动生成目录索引。不过,一些网友通过博客园后台提供的一些自定义功能,自己写脚本实现了这一功能。我用的脚本主要就是参考赵子清的,文章地址是:http://www.cnblogs.com/zzqcn/p/4657124.html

    原作者的脚本只支持1级目录,我改了两级:第1级是h2,第2级是h3。还添加了一些小玩意,比如讨论qq群号。效果如下图所示:

    添加功能的具体步骤是:

        1. 确保自己的博客园后台支持js
          这个默认是不支持,需要向官方发个邮件申请开通(邮箱是contact@cnblogs.com),我简单写了封邮件,1小时就回复了,邮件内容我只写了两个字:如题。。。。
        2. 到后台加入脚本
          打开博客园后台,进入“设置”标签页,在最下面的“页脚Html代码”对应的编辑框粘贴你的js代码,然后点“保存”按钮保存。
        3. 按格式写文章
          在写新博文的时候,注意按照你js脚本里设定的格式来划分章节,比如h2,h3等。当然,以前发布的文章如果有h2,h3之类,也会自动生成目录索引。
     1 <script language="javascript" type="text/javascript">
     2 //循环创建索引
     3 function getHxList(jquery_h_list, level, offset)
     4 {
     5     var content = "";
     6     level += 1;
     7     if(jquery_h_list.length>0 && level <= 4)
     8     {
     9         //content="alan";
    10         content += '<a name="_labelTop"></a>';
    11         content    += '<div id="navCategory">';
    12         content    += '<ul>';
    13         for(var i=0; i<jquery_h_list.length; i++)
    14         {
    15             var go_to_top = '<div style="text-align: right"><a href="#_labelTop">回到顶部</a><a name="_label' + offset + i + '"></a></div>';
    16             $(jquery_h_list[i]).before(go_to_top);
    17             var li_content = '<li><a href="#_label' + offset + i + '">' + $(jquery_h_list[i]).text() + '</a></li>';
    18             content += li_content;
    19 
    20             var jquery_h2_list = $(jquery_h_list[i]).nextUntil(jquery_h_list[i+1], "h"+level);
    21             content += getHxList(jquery_h2_list, level, offset+i);
    22         }
    23         content    += '</ul>';
    24         content    += '</div>';
    25     }
    26     return content;
    27 }
    28 
    29 //生成目录索引列表
    30 function GenerateContentList()
    31 {
    32     var jquery_h2_list = $('#cnblogs_post_body h2');//如果你的章节标题不是h2,只需要将这里的h2换掉即可
    33     var content = '<p style="font-size:18px"><b>阅读目录</b></p>';
    34     content += getHxList(jquery_h2_list, 2, 0);
    35     if($('#cnblogs_post_body').length != 0 )
    36     {
    37         $($('#cnblogs_post_body')[0]).prepend(content);
    38     }
    39     return;
    40 }
    41 GenerateContentList();
    42 </script>
  • 相关阅读:
    应用 memcached 提升站点性能
    Servlet 工作原理解析
    AJAX的一些基础和AJAX的状态
    回调地狱以及用promise怎么解决回调地狱
    Ajax的封装
    promise的理解和应用
    jsonp跨域
    浅谈事件冒泡和事件捕获
    JS中的兼容问题总结
    JS写的二级导航栏(利用冒泡原理)
  • 原文地址:https://www.cnblogs.com/1024Planet/p/5748934.html
Copyright © 2011-2022 走看看