我有以下代码可以从 JavaScript 中更改页面:
var newUrl = [some code to build up URL string];
window.location.replace(newUrl);
但它不会更改顶部 URL,因此当有人单击后退按钮时,它不会返回上一页。
我如何让 JavaScript 更改顶部 URL,以便浏览器后退按钮起作用。
我有以下代码可以从 JavaScript 中更改页面:
var newUrl = [some code to build up URL string];
window.location.replace(newUrl);
但它不会更改顶部 URL,因此当有人单击后退按钮时,它不会返回上一页。
我如何让 JavaScript 更改顶部 URL,以便浏览器后退按钮起作用。
document.location.href = newUrl;
https://developer.mozilla.org/en-US/docs/Web/API/document.location
简单地分配给window.location
或window.location.href
应该没问题:
window.location = newUrl;
但是,您的新 URL 会导致浏览器加载新页面,但听起来您希望在不离开当前页面的情况下修改 URL。为此,您有两种选择:
使用 URL 哈希。例如,您可以example.com
在example.com#foo
不加载新页面的情况下从到。您可以简单地设置window.location.hash
以简化此操作。然后,您应该监听 HTML5hashchange
事件,该事件将在用户按下后退按钮时触发。这在旧版本的 IE 中不受支持,但请查看jQuery BBQ,它可以在所有浏览器中使用。
您可以使用 HTML5 History 修改路径而无需重新加载页面。这将允许您从 更改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.pathname = '/relative-link'
"http://domain.com" -> "http://domain.com/relative-link"
嗯,我会用
window.location = 'http://localhost/index.html#?options=go_here';
我不确定这是否是你的意思。
<script>
var url= "http://www.google.com";
window.location = url;
</script>