我正在创建一个网站,它使用jquery滚动作为导航的方法,从不离开一个单独的html页面。
我注意到一些网站可以更改网址,并查看了帖子/答案(例如How does GitHub change the URL without reloading a page?和Attaching hashtag to URL with javascript),其中提到这些更改要么是推送状态,要么是AJAX脚本,要么是历史API's (所有这些我都不太了解)。
目前,我正在研究哪种方法最适合我的网站,并一直在寻找一些我喜欢的例子。
我的问题是,为什么下面的网站在更改URL的路径中使用/#/。我问这个问题的唯一原因是,我越来越多地在jquery重型网站上看到这种情况。
http://na.square-enix.com/ffxiii-2/
http://www.airwalk.com
如果有人能简单地说明一下这些人是用什么来做这件事的,我将非常感激,这样我就可以创建自己的脚本了。
发布于 2012-01-18 21:37:07
我的问题是,为什么下面的网站在更改URL的路径中使用/#/
如果我们将无知的可能性放在一边,那么:因为他们愿意接受the horrible drawbacks,以换取它在Internet Explorer (不支持the history API)中工作。
Github采取了一种明智的方法,如果历史API可用,则使用历史API,如果历史API不可用,则回退到服务器,而不是生成在没有JavaScript的情况下将断开的链接。
发布于 2012-01-18 21:11:21
http://probablyinteractive.com/url-hunter
这有一个关于如何用javascript改变url的很好的例子。
发布于 2012-01-18 21:12:11
我自己还没有试过,但读了很多关于History.js的评论/意见
它应该像你说的那样有"# in the path“选项(对于旧的--不兼容的--浏览器)和像facebook一样直接改变URL。此外,当您单击back按钮时,您将不会有任何问题地转到前面加载了AJAX的页面。
我已经实现了这样一个特性(可更改URL的AJAX选项卡),但是如果您想在要动态加载的页面上使用其他javascript,我不建议您使用AJAX加载的页面,因为当您使用AJAX加载内容时,内容中的JavaScript将不会被执行。
所以我投票给HistoryJS或者制作你自己的模块。
https://stackoverflow.com/questions/8910565
复制相似问题