我有history.state中的状态数组和数组索引,在popstate上,我读取了数组的内容,它工作得很好,但是当我返回到第一页并刷新数组时,数组消失了(这是正常的),但是向前历史状态仍然存在。
是否有可能删除使用pushState创建的假历史记录?
我不能将我的状态存储在localStorage中,因为我的状态数组中有函数。
发布于 2014-05-21 12:16:09
如果您阅读pushState历史API规范,在步骤4中它将声明
pushState()
方法:
在当前条目之后删除浏览上下文会话历史记录中的所有条目。如果当前条目是会话历史记录中的最后一个条目,则不会删除任何条目。因此,根据您想要做的事情,您可以为第一次加载页面并推送一个状态(您将首先考虑一个状态)做一个特例,并在这样做时明确历史的前向状态。
发布于 2016-08-05 13:13:27
我的想法-推翻整个历史:
for (i = 0; i < 50; i++) {
history.pushState({}, '');
}
发布于 2014-05-21 12:32:50
无法清除会话历史记录,也无法从非特权代码中禁用后退/转发导航。最近的可用解决方案是location.replace()方法,它用提供的URL替换会话历史记录的当前项。Mozilla
唯一的办法就是这个(但我想你知道)
var length=history.length;
history.go(-length);
window.location.replace("urlToRedirect");
在使用replace()之后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用Back按钮导航到它。
https://stackoverflow.com/questions/22973500
复制相似问题