4

我正在为一个项目构建一系列基本的手风琴。

我们希望他们拥有静态的、可链接的页面。因此,我们也为每个打开状态创建了单独的页面。

例如,

/whoweare 是主滑块。

但是我们有一个位于 /whoweare/whatwedo 的子滑块

我要做的是,当用户单击 /whoweare 上的标题时,滑块打开,并且 url 栏更新为 /whoweare/whatwedo,但没有实际的重定向。url 位置应该简单地改变,仅此而已。

我试过使用

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

但这似乎并没有完成我想要的,它仍然重新加载到一个新页面上。

还有其他建议吗?

4

2 回答 2

11

您无法在不重定向的情况下更改 URL - 这将是一场网络钓鱼的噩梦(例如,在访问网络钓鱼站点时将 URL 更改为银行的 URL)。

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

# 352343更改浏览器地址栏而不刷新的完全相同

更新: HTML5 现在允许pushState,但仅限于同一域内。

于 2009-10-26T18:28:15.260 回答
0

查看Ben Alman 的 jQuery bbq 插件

$.bbq.pushState() - http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/

于 2011-12-10T18:51:21.037 回答