Answers:
document.location.href = newUrl;
https://developer.mozilla.org/zh-CN/docs/Web/API/document.location
简单分配window.location或window.location.href应该可以:
window.location = newUrl;
但是,您的新URL将导致浏览器加载新页面,但这听起来像您想在不离开当前页面的情况下修改URL。您有两种选择:
使用URL哈希。例如,您可以从example.com到example.com#foo而不加载新页面。您可以简单地进行设置window.location.hash以简化此过程。然后,您应该收听HTML5 hashchange事件,该事件将在用户按下“后退”按钮时触发。较旧版本的IE不支持此功能,但请查看jQuery BBQ,它可以在所有浏览器中使用。
您可以使用HTML5历史记录来修改路径,而无需重新加载页面。这将使您从更改example.com/foo为example.com/bar。使用这个很容易:
window.history.pushState("example.com/foo");
当用户按下“后退”时,您将收到窗口的popstate事件,您可以轻松地收听(jQuery):
$(window).bind("popstate", function(e) { alert("location changed"); });
不幸的是,只有非常现代的浏览器(例如Chrome,Safari和Firefox 4 beta)才支持此功能。
window.location.replace()方法与String.prototype.replace()方法不同,因为window.location它不是字符串(它是一个对象)。window.location.replace()替换当前URL与一个新的,而在历史上覆盖旧的URL条目。