如何从JavaScript中更改页面
我有以下代码,从JavaScript内更改页面:
var newUrl = [some code to build up URL string]; window.location.replace(newUrl);
但是它不会更改顶部的URL,所以当有人点击后退button时,它不会返回到上一页。
如何让JavaScript更改顶级url,以便浏览器后退button有效。
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。 你有两个select:
-
使用url哈希。 例如,您可以从
example.com
到example.com#foo
而不加载新页面。 你可以简单的设置window.location.hash
来简化这个过程。 然后,您应该听取HTML5hashchange
事件,当用户按下后退button时将会触发该事件。 旧版本的IE不支持此function,但请查看jQuery BBQ ,它可以在所有浏览器中使用。 -
您可以使用HTML5 History来修改path,而无需重新加载页面。 这将允许您从
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 4testing版。
嗯,我会用
window.location = 'http://localhost/index.html#?options=go_here';
我不确定这是不是你的意思。
如果你只是想更新相对path,你也可以做
window.location.pathname = '/relative-link'
"http://domain.com" -> "http://domain.com/relative-link"