首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除History.js的历史堆栈

清除History.js的历史堆栈
EN

Stack Overflow用户
提问于 2013-11-01 17:56:33
回答 4查看 14K关注 0票数 3

我在我的网页中使用History.js,它运行良好,但是当用户单击页面上的面包屑时,直接进入第一页,即不单击“浏览器后退”按钮,History.js堆栈没有被清除,第一页上的noe按回按钮不能正常工作。有办法清除History.js堆栈吗?在Html5历史api中,我会执行history.go(-(history.length - 1));,但是当使用History.js History.length时,总是给出0,即使我跟随了面包屑并跳过了一些后退按钮点击。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-05 09:10:01

无法清除会话历史记录,也无法从非特权代码中禁用后退/前进导航。最近可用的解决方案是location.replace()方法,它用提供的URL替换会话历史记录的当前项。Mozilla源

有这样一个解决方案:

代码语言:javascript
复制
var Backlen=history.length;   

history.go(-Backlen); // Return at the beginning

window.location.replace("page url to redirect");

来源

票数 8
EN

Stack Overflow用户

发布于 2014-11-11 12:30:23

多诺万的回答很好,但在我的情况下行不通。回溯索引太高,因此将忽略命令history.go(-Backlen)。

此解决方案适用于我的情况:

代码语言:javascript
复制
var backlen = history.length - 1;  
history.go(-backlen); // Return at the beginning
history.replaceState({}, null, 'your relative url');
票数 2
EN

Stack Overflow用户

发布于 2013-11-05 09:03:26

我不知道直接的答案,但你可以试试window.location.replace(url);

引用另一篇文章:在使用替换()之后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用后退按钮导航到它的在Javascript中,我如何“清除”后面(历史-1)?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19732486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档