2012-02-27 77 views
1

我正在開發一個社交網站,並打算儘可能使其動態化。我迄今遇到的唯一主要問題是在使用jQuery的加載函數時無法使用瀏覽器後退按鈕。jQuery的加載功能,不允許後退按鈕?

我下面的代碼添加到真正改變用戶的URL時,JavaScript函數用於:

var stateObj = { foo: page }; 
history.pushState(stateObj, page, page); 

我假定爲我想它會工作,但不幸的是,URL的變化,但內容的頁面保持原樣。

有誰知道我可以如何加載訪問的最後一頁?不是動態的,就像通常的後退按鈕一樣正常工作。

如果你想什麼實際發生的事情,你可以參觀臨時URL的例子:http://goo.gl/0BOUV
您需要登錄,所以這裏的一些登錄信息:
電子郵件:[email protected]
密碼:密碼

+0

我對這個JavaScript庫有很好的運氣:https://github.com/balupton/History.js/ – Blender 2012-02-27 14:11:27

回答

2

如果您使用pushState更改顯示的URL,那麼當用戶按下「後退」時,瀏覽器不會直接重新加載URL。相反,它會觸發一個onpopstate事件。詳情請參閱the Mozilla docs。您需要爲該事件編寫一個處理程序,根據狀態數據重新載入適當的頁面。

順便提一下,pushState是一項新的HTML5功能,因此不適用於所有瀏覽器。 @Blender提到的History.js庫提供了一個很好的跨瀏覽器兼容性層。即使使用庫,當用戶使用後退按鈕時仍然需要處理狀態更改事件。