Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以使用javascript重写url客户端,而无需重新加载页面_Javascript - Fatal编程技术网

可以使用javascript重写url客户端,而无需重新加载页面

可以使用javascript重写url客户端,而无需重新加载页面,javascript,Javascript,是否可以在客户端浏览器的URL字段中重写URL 因此,当一个人单击我页面上的链接时,ajax发生了一些事情(例如显示一个选项卡),我希望url显示该操作而不刷新页面 这可能吗?您可以更改URL的哈希/锚定部分(在#之后)。URL的其余部分是只读的 location.hash = "#value"; URL重写是不可能的,但使用哈希附加操作数据是非常常见的。例如,Facebook广泛使用它: http://www.facebook.com/#!/username

是否可以在客户端浏览器的URL字段中重写URL

因此,当一个人单击我页面上的链接时,ajax发生了一些事情(例如显示一个选项卡),我希望url显示该操作而不刷新页面


这可能吗?

您可以更改URL的哈希/锚定部分(在#之后)。URL的其余部分是只读的

location.hash = "#value";
URL重写是不可能的,但使用哈希附加操作数据是非常常见的。例如,Facebook广泛使用它:

http://www.facebook.com/#!/username
                        ^
散列之后的所有内容都只是同一页面中的锚定数据,您可以通过脚本整天修改这些数据


较新的浏览器还提供了“URL”更改,因此您可以对“URL”的更改做出反应,而不是不断轮询它。

唯一可能的解决方案是附加一个锚。然后,您可以使用somwething,比如允许用户将页面添加到书签中,或者使用ajaxified页面中的后退按钮


我过去也曾用一个选项卡式页面这样做。

当其他人回答这个问题时,他们是对的,不可能在javascript中更改URL。有了HTML5和现代浏览器,它现在使用的是
HTML5历史API

关于它。这是另一篇很好的博客文章,解释了这个特性

检查浏览器兼容性


有一些库,比如使用Hashbang为旧浏览器包装API和pollyfill。

这非常好!我会在将来的项目中记住它。但我正在求助于另一种解决方案。