使jQuery scrollTop不离开浏览器历史记录
make jQuery scrollTop Not to leave browser history
我正在寻找一种解决方案,使scrollTop不会在浏览器历史记录中留下记录。
当我第一次启动页面时,如果url有一个带内部锚名称的参数,我希望浏览器转到它的特定部分。所以我这样做:
$('html,body').animate(
{
scrollTop: $(".section[tagname='"+url_tagname+"']").offset().top
},
'slow');
但现在,当我点击浏览器的"返回"按钮时,它会先转到页面顶部。所以我实际上必须点击两次"返回"才能转到上一页。
有没有一种方法可以让滚动条不留下导航历史?
您不希望页面在单击同一页面时保存#anchor链接,对吗?
使用侦听器,并阻止默认链接操作。
$('a').on('click', function(event) {
event.preventDefault();
event.stopPropagation();
});
这将使您在历史记录中拥有多个相同页面,但如果从另一个页面导航,URL中仍会有#anchor标记。
编辑:我在评论中给出了实际答案:"你想重写URL吗?你的问题更多地是关于锚标记。如果你想更改URL,请使用:window.history.replaceState()。"。https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history"
相关文章:
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- 制作一个阻止存储在浏览器历史记录中的网页
- 使用服务器路由响应路由器浏览器历史记录
- JS函数在浏览器历史记录中返回特定域的上次浏览页面
- 使jQuery scrollTop不离开浏览器历史记录
- React Router浏览器历史记录适用于本地,而不适用于生产
- jquery cookie,在清除浏览器历史记录后仍然设置
- 通过javascript从浏览器历史记录中删除URL
- 如何防止浏览器在浏览浏览器历史记录时卡在Angular路线上
- 使用Backbone.js处理浏览器历史记录
- 使用javascript获取浏览器历史记录,并通过php打印
- 我们可以使用Javascript获取浏览器历史记录吗
- 通过javascript访问浏览器历史记录,以实现自定义的后退和前进按钮
- 如何操作浏览器历史记录并捕获浏览器后退/前进按钮
- 使用HTML5浏览器历史API的SPA中的页面刷新
- 如何通过js启用/禁用浏览器历史记录
- AJAX POST 浏览器历史记录
- 从客户端读取浏览器历史记录
- 在本地使用浏览器历史记录时刷新页面后数据消失
- 以编程方式查找 Chrome 浏览器历史记录