• 反馈和建议
  • 更新了之后,发现文章的目录不可以使用了~~~

使用的是Simple BootStrap主题,更新之后,新写的文章,目录不起作用,更新之前的文章没问题,正常,有相同遇到的小伙伴儿嘛??作者大大知道啥问题不哦?

点击目录的时候,报这个错。。
Uncaught Error: Syntax error, unrecognized expression: #目录名称

    @qinhua 我记得你们也遇到过这个问题,想知道有没有处理呢,不太明白为什么进行 URLEncode 之后就无法进行锚点定位。如果需要我们做修改可以回复一下。

      cetr 这应该是改为由前端渲染 Markdown 之后表现和原来不一样导致的,不是升级到 1.5.1 的问题。但凡我们发测试版的时候大家能积极点… 算了

      Ryan Wang 👍
      主要还是内容中的标题id被编码后导致 Tocbot 这个插件无法通过 id 找到对应节点获取滚动位置
      编码后的字符串是一个非法的字符串,不能被 js 的元素选择器识别,我这边还是先把文章中的标题 id 用 decodeURIComponent 解码后再调用 Tocbot 插件解决的。

      最后,还是建议把这个编码去掉。😅

        老的主题使用Tocbot做目录的。升级到 1.5 应该都会有这个问题

        qinhua 但这个问题被官方定义为bug,而且在 master 分支已经被修复,只是还没有发版本。另外,对于这种锚定位来说,对特殊字符做 urlencode 处理才符合对浏览器的支持。你可以用 [TOC] 生成的试试。

        see tscanlin/tocbot238

          16 天 后

          一只小Coder

          针对 Simple BootStrap 主题 ,以下是我的修改方案(不懂前端,只是换了实现方式)

          找到该文件:/source/js/post.js

          修改 generateCatalogs 函数:

          将下面这段:

          $(`${to} a[data-catalog-target]`).on('click', function (event) {
                          let titleId = `#${$(this).attr("data-catalog-target")}`;
                          changeUrlAnchor(titleId);
                          let offsetTop = $(titleId).offset().top - 20;
                          $("html,body").animate({scrollTop: offsetTop}, 300);
                          event.preventDefault();
                      });

          改成:

          $(`${to} a[data-catalog-target]`).on('click', function (event) {
                          let originTitleId = `${$(this).attr("data-catalog-target")}`;
                          let titleId = `#${originTitleId}`;
                          changeUrlAnchor(titleId);
                          let offsetTop = document.getElementById(originTitleId).offsetTop - 20;
                          $("html,body").animate({scrollTop: offsetTop}, 300);
                          event.preventDefault();
                      });

          仅供参考。

            17 天 后
            20 天 后

            一只小Coder
            大佬 这个在哪里改呀- - 我在主题编辑那里的post.js文件里找了半天没找到这段字符呀

            10 个月 后

            qinhua 您好! 请教下您的decodeURIComponent 解码是放在哪里的呢? 我也遇到了这个问题

            DemonLee
            你好,我试了你提供的代码
            测试:
            电脑端:正常跳转
            苹果手机端:有时可以跳,基本上不能跳,30次基本只有几次可以
            安卓端:因为没有,无法测试

            希望可以得到大佬最新修复代码