fluid-dev / hexo-theme-fluid

:ocean: 一款 Material Design 风格的 Hexo 主题 / An elegant Material-Design theme for Hexo
https://hexo.fluid-dev.com/
GNU General Public License v3.0
7.05k stars 1.11k forks source link

关于点击目录后回退问题 #1088

Closed WenJelly closed 1 week ago

WenJelly commented 2 months ago

假设当前在文章页面,有目录1、2、3,当点击目录1后再次点击目录2,如果此时想要退回到主页,会先从目录2的页面退回到目录1,然后再按一个退回键才能退回到主页,如果点击的目录很多则非常不方便

Explorer-Dong commented 2 weeks ago

这是浏览器的行为记录规则吧,和 fluid 主题无关。可以设置导航栏「回到主页」的按钮

xiyuvi commented 1 week ago

如上所说,这是浏览器的行为,不属于bug,不应当给你从主题层面改。 但是你自己可以修改代码实现你自己特定的功能

原来的目录
<a title="代码" href="#代码" class="tocbot-link node-name--H2 ">代码</a>

你把他改为

<a title="代码" href="#代码" class="tocbot-link node-name--H2 " onclick="handleAnchorClick(event, '#代码')">代码</a>

js里新加一个函数

function handleAnchorClick(event, anchor) {
            event.preventDefault(); // 阻止默认跳转行为
            window.location.hash = anchor; // 手动跳转到锚点
            history.replaceState(null, null, ' '); // 替换当前历史记录
        }

这样就能实现你要的功能

我是使用的主题示例的目录改的,你没有魔改主题的话,应该和我上面发的是一致的 image