我有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