如何在浏览器网址框中更改网址?

时间:2011-09-10 15:05:35

标签: php javascript jquery

我真的很想知道为什么facebook和谷歌可以在不重新加载页面的情况下更改网址?他们只是改变他们网站中的块或内容。

我注意到当我使用facebook时,点击“新的Feed”时,网址为“http://www.facebook.com/”,页面没有重新加载,然后我点击“消息”网址更改为“http://www.facebook.com/messages/”,页面仍然没有重新加载只是更改网站的“内容”块。

那么如何在不重新加载页面的情况下更改网址呢?

编辑:我得到了答案 这里有2个案例:

  • 浏览器支持html5(Firefox 3.6 +等):使用html5历史记录。 (例如:www.facebook.com => www.facebook.com/messages)
  • 浏览器不支持html5(IE6,IE7,IE8等):使用哈希标签(#)(例如:www.facebook.com => www.facebook.com/#!/messages)

希望对像我这样怀疑的人有所帮助。

4 个答案:

答案 0 :(得分:8)

您是否查看了Javascript的历史API?

http://diveintohtml5.ep.io/history.html

编辑:您也可以将mod_rewrite与apache一起使用,但这会导致刷新。

或者有这个JQuery插件

http://www.asual.com/jquery/address/

答案 1 :(得分:2)

网址通常会更改为http://facebook/#!messages,因此更改“片段”网址部分不会使浏览器重新加载网页。相反,有一些JavaScript库可以监视片段更改并发出适当的请求以重新加载页面内容。

#!的使用几乎成为做这些事情的“标准”,我已经在其他地方看到过这种情况(例如在Twitter上)。我不记得他们是否都使用相同的库或只是命名约定,但你应该能够在fb / twitter开发者页面上挖掘它。

答案 2 :(得分:0)

您可以为此目的查看Content-Location HTTP标头。有关详细信息,请参阅here

答案 3 :(得分:0)

我在JSBin.com上编码,主要使用CSS和HTML(以前废弃的Javascript loooong)并有一个问题。例如,网页的网址为http://www.codingrules.com/ 那么,使用HTML,我如何更改该URL为例如 http://www.ilovecoding.com