我在我的网页中使用History.js,它运行良好,但是当用户单击页面上的面包屑时,直接进入第一页,即不单击“浏览器后退”按钮,History.js堆栈没有被清除,第一页上的noe按回按钮不能正常工作。有办法清除History.js堆栈吗?在Html5历史api中,我会执行history.go(-(history.length - 1));,但是当使用History.js History.length时,总是给出0,即使我跟随了面包屑并跳过了一些后退按钮点击。
发布于 2013-11-05 09:10:01
无法清除会话历史记录,也无法从非特权代码中禁用后退/前进导航。最近可用的解决方案是location.replace()方法,它用提供的URL替换会话历史记录的当前项。Mozilla源
有这样一个解决方案:
var Backlen=history.length;
history.go(-Backlen); // Return at the beginning
window.location.replace("page url to redirect");来源
发布于 2014-11-11 12:30:23
多诺万的回答很好,但在我的情况下行不通。回溯索引太高,因此将忽略命令history.go(-Backlen)。
此解决方案适用于我的情况:
var backlen = history.length - 1;
history.go(-backlen); // Return at the beginning
history.replaceState({}, null, 'your relative url');发布于 2013-11-05 09:03:26
我不知道直接的答案,但你可以试试window.location.replace(url);。
引用另一篇文章:在使用替换()之后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用后退按钮导航到它的在Javascript中,我如何“清除”后面(历史-1)?
https://stackoverflow.com/questions/19732486
复制相似问题