我目前正在使用面向AJAX的Web应用程序。我一直在寻找使用浏览器URL复制当前AJAX状态(或应用程序状态)的不同方法,因此刷新和后退按钮也可以工作。从Javascript中更改网址与Facebook类似
在过去的几周里,我看到了涉及使用散列(#)和不同的JS框架的不同方法。
在文档中指出,从JS更改浏览器URL是不可能的。今天,我去了Facebook并打开了一张图片,并更改了网址(图片在Lightbox中打开)。图片关闭后,浏览器网址变回原始网页。
你有什么想法他们如何实现这种行为?
我目前正在使用面向AJAX的Web应用程序。我一直在寻找使用浏览器URL复制当前AJAX状态(或应用程序状态)的不同方法,因此刷新和后退按钮也可以工作。从Javascript中更改网址与Facebook类似
在过去的几周里,我看到了涉及使用散列(#)和不同的JS框架的不同方法。
在文档中指出,从JS更改浏览器URL是不可能的。今天,我去了Facebook并打开了一张图片,并更改了网址(图片在Lightbox中打开)。图片关闭后,浏览器网址变回原始网页。
你有什么想法他们如何实现这种行为?
您可以在URL中这样结尾操纵具有价值:
var hashVal = 'somevalue';
window.location.hash = '#' + hashVal;
然后是网址将成为www.something.com/#somevalue
你可以操纵的哈希值尼尔指出。但我会建议使用一个库来做同样的事情。这里有一个,我使用
http://developer.yahoo.com/yui/history/
散列值的URL主要用于操纵后退按钮和书签整合。希望这可以帮助。
HTML5的一项功能支持您所指的内容。见http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page。
一些系统通过检查window.history.pushState来实现这一点,如果是的话,使用它,否则会回退到hashtags。如果搜索引擎优化是关注,使用#!代替 #。见 http://code.google.com/intl/es/web/ajaxcrawling/docs/getting-started.html。
希望有所帮助。
+1这就是答案! – Shea 2012-02-22 14:23:35
可能的重复[如何Github更改页面和URL如此顺利没有AJAX?](http://stackoverflow.com/questions/5216314/how-is-github-changing-pages-and-the-url-如此顺利 - 没有ajax) – Quentin 2011-05-05 15:27:01
不是一个重复的,但很好的补充信息:[什么是Facebook和新的Twitter网址shebang/hashbang(#!)?](http://stackoverflow.com/questions/3009380/whats-the-shebang-hashbang-in-facebook-and-new-twitter-urls-for) – Jeremy 2011-05-05 15:29:45
@DAvid谢谢你的提示!我认为这是开始寻找这个的好地方!很好的帮助! – Nicolas 2011-05-05 15:48:21