我有history.state和popstate中的数组的状态和索引数组,它读取数组的内容,但它工作正常,但是当我回到第一页并刷新阵列消失了(这是正常的),但是正向历史状态保持不变。清除pushState创建的清除历史记录
是否可以删除使用pushState创建的假历史?
我不能在localStorage中存储我的状态,因为我的状态数组中有函数。
我有history.state和popstate中的数组的状态和索引数组,它读取数组的内容,但它工作正常,但是当我回到第一页并刷新阵列消失了(这是正常的),但是正向历史状态保持不变。清除pushState创建的清除历史记录
是否可以删除使用pushState创建的假历史?
我不能在localStorage中存储我的状态,因为我的状态数组中有函数。
如果读取specification of History API for pushState,在步骤4中它指出
- 如果该方法调用是
pushState()
方法:
在浏览上下文的删除所有条目会话历史记录在当前条目之后。如果当前条目是会话历史记录中的最后一个条目,则不会删除条目。
所以这取决于你正在尝试做的,你都可以成为首次加载页面的特殊情况,推动一个国家(一个你会考虑你的第一个),并在这样做清晰历史的前沿状态。
几乎可以工作,但是当我创建pushState onInit(刷新)时,我在历史中有两个页面,原始真实页面和来自pushState的假页面。 replaceState也不起作用,因为它不会清除历史记录,只会更改当前的历史记录。这并不完美,但可能你做不到更好。 – jcubic
我的想法 - 覆盖整个历史:
for (i = 0; i < 50; i++) {
history.pushState({}, '');
}
您可以设置使用pushState的或replaceState在页面加载一个新状态,它会删除前进历史。 – LawfulHacker