我目前正在使用面向AJAX的Web应用程序。我一直在寻找使用浏览器url复制当前AJAX状态(或应用程序状态)的不同方法,因此刷新和后退按钮也可以。
在过去的几周里,我看到了使用hash(#)和不同JS框架的不同方法。
在文档中说明,无法从JS更改浏览器URL。今天我去了Facebook并打开了一张图片,网址发生了变化(Altough图像在灯箱中打开)。关闭图像后,浏览器网址会更改回原始页面。
你知道他们是如何实现这种行为的吗?
答案 0 :(得分:8)
HTML5的一项功能支持您所指的内容。请参阅http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page。
有些系统通过检查window.history.pushState来实现这一点,如果是这样,使用它,否则回退到hashtags。如果关注SEO,请使用#!代替 #。看到 http://code.google.com/intl/es/web/ajaxcrawling/docs/getting-started.html
希望有所帮助。
答案 1 :(得分:1)
您可以像这样操作URL末尾的has值:
var hashVal = 'somevalue';
window.location.hash = '#' + hashVal;
然后网址将变为www.something.com/#somevalue
答案 2 :(得分:0)
你可以像Neal指出的那样操纵哈希值。但我建议使用库来做同样的事情。这是我使用的一个
http://developer.yahoo.com/yui/history/
URL中的哈希值主要用于后退按钮和书签集成。希望这会有所帮助。