2011-12-21 46 views
3

我目前正在更新网页内容通过以下玩弄:的Rails 3 - 链接:远程更新地址URL

<%= link_to(content_tag(:span, 'Settings'), edit_admin_store_path, :remote => true)%> 

使用JavaScript这样:

$('nav li a').bind("ajax:success", function(event, data){ 
    console.log(event + data); 
    $('div#loading').hide(); 
    $('div#container div#content').html(data).hide().fadeIn('100'); 
    }); 

,并想知道是否有'轨道'也更新地址网址?

非常感谢任何帮助/建议!

回答

3

基本上,您需要HTML5 history.pushState方法。大文件可以发现here, at the mozilla developers network.

简单地说,你会推到历史做这样的事情:

var stateObj = { foo: "bar" }; 
history.pushState(stateObj, "new page title", "forbear.html") 

这将导致URL取决于什么网址目前看起来像显示http://www.yoursite.html/whatever/foobar.html

干杯!

+0

有什么选项可以在HTML5之前工作吗?如果后退按钮能够正常工作,我会满意地在#中添加网址。 这是如何适合像Pjax这样的东西? – Galaxy 2011-12-21 23:56:23

+0

尝试[History.js](https://github.com/balupton/History.js/) – 2011-12-21 23:58:40

+0

矿石HTML5,这是一项非常艰巨的任务。因此,因此到达HTML5。您可以将碎片添加到URL中,但每次删除/更改时都需要手动更新DOM。我不推荐。你会使用history.js来自动化后者,而不是自己做。 – andrewpthorp 2011-12-22 00:00:05