history.replaceState仍然将条目添加到“浏览历史记录”

时间:2014-11-07 02:37:55

标签: javascript google-chrome browser-history

具体来说,调用以下代码片段:

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

将正确地影响当前页面的后退按钮行为,但在“浏览历史记录”页面中添加一个我不想要的条目。下图是Chrome的历史记录页面,但这也发生在Firefox中。

有没有办法在不添加用户浏览历史记录的条目的情况下替换当前URL?

我正在询问独立的“浏览器历史记录”页面,而不是“后退”按钮使用的实际页面导航历史记录。

Chrome Browser History

2 个答案:

答案 0 :(得分:1)

我在全球历史上找不到任何W3C规范,但是即使session history也未指定预期的行为。

实际上,这已经是open bug了8年了,大多数浏览器都选择以这种方式实现全局历史记录。简而言之,除了不调用pushState / replaceState之外,可能没有其他解决方法。

答案 1 :(得分:-3)

使用replaceState方法的正确方法。 在我做的测试中,它在chrome和firefox中都运行良好 - 运行replaceState后历史记录没有改变。