在使用了aplayer后,发现toc失效了,怎么点都没有用,前两天折腾过pjax,但是也没折腾出来,所以这个功能的锅先排除掉,Google上搜了下,看到了有好多大佬发的文章证实了我的猜测。
首先要感谢这位大佬解决了我的困扰,然后这是他写的解决方案,
我简单说一下问题所在,就是Aplayer下的smoothscroll插件在处理跳转连接的hash时只对英文处理有效,而中文会转成Unicode码,无法处理,所以跳转就会失效。 解决办法:
- 找到主题路径下的APlayer.min.js文件
- ctrl+f搜索hash定位到要修改的地方
- 在引用hash的对象前,包一层
decodeURIComponent()
,这样就能正常处理中文的标签和 location 的对应问题了
例如:
if (decodeURIComponent(location.hash) !== decodeURIComponent(this.hash))
其实就是把hash进行decodeURIComponent处理,这样就能正常处理中文的标签和位置的对应问题了。
我这里的话之前用的是官方js文件,嫌麻烦的话直接换成大佬改好的js文件即可APlayer.min.js