2014-11-07 15 views
10

具體來說,調用下面的代碼片段:history.replaceState還增加了條目「瀏覽歷史」

history.replaceState(undefined, undefined, "#' + value)

將正確不影響當前網頁的後退按鈕的行爲,但將增加一個進入「瀏覽歷史」頁面。下面是Chrome的圖片,但這也發生在Firefox中。

有沒有一種方法可以替換當前的URL而無需向用戶的瀏覽歷史添加條目?

Chrome Browser History

+0

我也想知道這件事,但從未找到答案。 – 2014-12-02 23:26:35

+0

我不認爲你的問題可能與歷史API,如果有的話。 「history.replaceState()的運行方式與history.pushState()完全相同,只是replaceState()修改了當前的歷史記錄,而不是創建新的歷史記錄。」 https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history – 2015-02-04 00:24:03

+0

@realseanp正確,OP的屏幕截圖顯示replaceState正在創建新的不同條目。在目前的Chrome Canary中,歷史和緩存清除後,我仍然得到類似的行爲。後退按鈕遍歷「替換」狀態。 – Ben 2015-10-28 17:46:27

回答

-2

正確的方法,使其使用replaceState方法。 在我做的測試中,它在chrome和firefox中運行得非常好 - 運行replaceState後歷史記錄沒有改變。

+0

我認爲你錯誤地解釋了這個問題 - 我在詢問獨立瀏覽器歷史頁面,而不是後退按鈕使用的實際頁面導航歷史記錄。 – 2015-03-03 21:23:09