2011-03-15 42 views
1

我正在構建一個基於哈希導航的Backbone.js應用程序。除IE7外,它在任何地方都能正常工作在IE7中,當我點擊改變散列的鏈接,會發生什麼情況是:在IE7中使用Backbone.js基於哈希的導航

  • 的頁面改變
  • 哈希然後恢復到以前的值
  • 的頁面改變到前一頁,以及

我通過加載每一頁後加入saveLocation呼叫控制器取得了聯繫工作,但是當我使用後退按鈕或刷新頁面時,它總是需要我的主頁,而不是要回或重裝當前頁面。

我能做些什麼來使後退按鈕和頁面重新加載工作?

回答

2

我對主幹進行了一些更改以使其適用於我。你可以看看我在這裏的回購:

https://github.com/juggy/backbone

爲我工作至今。我不知道如果我打破了別的。我從YUI和https://github.com/cowboy/jquery-hashchange/blob/master/jquery.ba-hashchange.js啓發自己。

+0

我已經在IE8,Firefox和Chrome中測試過你的分叉,它似乎在所有這些工作都很好。在IE7頁面重新加載工作正常(這是很好的),但是,當我使用後退按鈕並在幾次頁面之間導航時,歷史堆棧變得不正確。你的版本對IE7來說是一個不錯的改進,所以謝謝你! – 2011-03-15 23:28:29

1

我也有和你一樣的IE7問題,並嘗試過各種方式(保存位置,骨幹補丁等),但它沒有成功。看起來IE7在翻閱多頁時會產生誤解。

我最終的解決方案不是使用Backbone.history,而是使用jQuery History Plugin。

http://tkyk.github.com/jquery-history-plugin/

我知道這是最糟糕的解決方法,因爲該解決方案依賴於其他插件,但幸運的是,Backbone.Controller只是處理路線和狀態處理,你不必使用它。

jQuery歷史插件正常工作。