可以使用javascript重写url客户端,而无需重新加载页面
是否可以在客户端浏览器的URL字段中重写URL 因此,当一个人单击我页面上的链接时,ajax发生了一些事情(例如显示一个选项卡),我希望url显示该操作而不刷新页面可以使用javascript重写url客户端,而无需重新加载页面,javascript,Javascript,是否可以在客户端浏览器的URL字段中重写URL 因此,当一个人单击我页面上的链接时,ajax发生了一些事情(例如显示一个选项卡),我希望url显示该操作而不刷新页面 这可能吗?您可以更改URL的哈希/锚定部分(在#之后)。URL的其余部分是只读的 location.hash = "#value"; URL重写是不可能的,但使用哈希附加操作数据是非常常见的。例如,Facebook广泛使用它: http://www.facebook.com/#!/username
这可能吗?您可以更改URL的哈希/锚定部分(在#之后)。URL的其余部分是只读的
location.hash = "#value";
URL重写是不可能的,但使用哈希附加操作数据是非常常见的。例如,Facebook广泛使用它:
http://www.facebook.com/#!/username
^
散列之后的所有内容都只是同一页面中的锚定数据,您可以通过脚本整天修改这些数据
较新的浏览器还提供了“URL”更改,因此您可以对“URL”的更改做出反应,而不是不断轮询它。唯一可能的解决方案是附加一个锚。然后,您可以使用somwething,比如允许用户将页面添加到书签中,或者使用ajaxified页面中的后退按钮
我过去也曾用一个选项卡式页面这样做。当其他人回答这个问题时,他们是对的,不可能在javascript中更改URL。有了HTML5和现代浏览器,它现在使用的是
HTML5历史API
关于它。这是另一篇很好的博客文章,解释了这个特性
检查浏览器兼容性
有一些库,比如使用Hashbang为旧浏览器包装API和pollyfill。这非常好!我会在将来的项目中记住它。但我正在求助于另一种解决方案。