一尘不染

在浏览器中更改URL而不使用JavaScript加载新页面

javascript

我将如何执行一个JavaScript动作,该动作可能会对当前页面产生一些影响,但同时也会更改浏览器中的URL,因此,如果用户点击重新加载或添加书签,则会使用新的URL?

如果“后退”按钮将重新加载原始URL,那也很好。

我正在尝试在URL中记录JavaScript状态。


阅读 439

收藏
2020-04-25

共1个答案

一尘不染

对于HTML 5,请使用history.pushState函数。举个例子:

<script type="text/javascript">
var stateObj = { foo: "bar" };
function change_my_url()
{
   history.pushState(stateObj, "page 2", "bar.html");
}
var link = document.getElementById('click');
link.addEventListener('click', change_my_url, false);
</script>

和href:

<a href="#" id='click'>Click to change url to bar.html</a>

如果要更改URL而不在后退按钮列表中添加条目,请history.replaceState改用。

2020-04-25