gpt4 book ai didi

javascript - 使 jQuery scrollTop 不留下浏览器历史记录

转载 作者:行者123 更新时间:2023-12-03 10:38:17 25 4
gpt4 key购买 nike

我正在寻找一种解决方案,使scrollTop不会在浏览器历史记录中留下记录。

当我第一次启动页面时,如果 url 具有带有内部 anchor 名称的参数,我希望浏览器转到该页面的特定部分。所以我这样做:

$('html,body').animate(
{
scrollTop: $(".section[tagname='"+url_tagname+"']").offset().top
},
'slow');

但是现在当我点击浏览器的“后退”按钮时,它会首先转到页面顶部。所以我实际上必须按“后退”两次才能转到上一页。

有没有办法让scrolltop不留下导航历史记录?

最佳答案

您不希望页面在单击同一页面时保存#anchor 链接,对吗?

使用监听器,并防止默认链接操作。

$('a').on('click', function(event) {
event.preventDefault();
event.stopPropagation();
});

这将使您在历史记录中保留多个同一页面,但如果从其他页面导航,您的 URL 中仍将包含#anchor 标记。

编辑:实际答案是我自己在评论中提供的:“您想重写 URL?您的问题更多是针对 anchor 标记。如果您想更改 URL,请使用:window.history.replaceState()。https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

关于javascript - 使 jQuery scrollTop 不留下浏览器历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28899838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com