2009-10-26 67 views
4

我正在为一个项目构建一系列基本的手风琴。Jquery更新浏览器位置,不要重定向

我们希望它们具有静态的可链接页面。因此,我们也为每个打开状态创建了不同的页面。

例如,

/whoweare是主滑块。

但我们必须位于副滑动 /whoweare/whatwedo

什么我期待做的是,当用户点击/头whoweare,滑块打开,地址栏更新到/ whoweare/whatwedo,但没有实际的重定向。网址的位置应该简单地改变,仅此而已。

我使用

window.location.replace($(this).attr('href')); 
return false; 

尝试,但似乎并没有已经完成了我想要的东西,但它仍然重新加载到一个新的一页。

其他建议?

+0

[更改浏览器的地址栏,而无需刷新]的可能重复(http://stackoverflow.com/questions/352343/changing-浏览器地址栏无需刷新) – 2011-09-04 13:19:30

回答

11

您不能在没有重定向的情况下更改网址 - 这将成为一种网络钓鱼噩梦(例如,在网上钓鱼站点上将网址更改为银行网址)。

您只能操作文档散列 - 即http://domain.com/#identifier - 这就是Google,Facebook等向AJAX网站提供浏览器历史记录支持的方式。

完全重复的#352343 Changing browser’s address bar without refreshing

更新: HTML5现在允许pushState,但只在同一个域内。

+0

感谢此, 我只需要解决它。 – Paul 2009-10-26 18:40:30