我正在開發一個在後端使用CodeIgniter並在前端使用Backbone.js的Web應用程序。 我也使用HTML5 Boilerplate作爲我的開始模板。Backbone.js只在IE7中導致錯誤
我使用Backbone的控制器和歷史記錄作爲通過我的應用程序的主導航。我過去曾經做過一次,一切都很好。問題是,當我開始使用Backbone.History.start()開始hashchange事件捕獲並單擊鏈接example.com/#home時,URL中的哈希更改,事件被觸發,但在2秒後,哈希被清除從URL和JavaScript錯誤只在ie7中拋出。
我已經看到了源代碼,並通過創建一個運行間隔檢查哈希值更改的IFRAME在IE7中實現了hashchange事件。
之前有人有這個奇怪的錯誤,並知道如何解決這個問題?
不幸的是,Backbone的saveLocation不會觸發hashchange事件,我的整個應用程序都需要這個功能。我在IE調試控制檯`SCRIPT1014:無效字符javascript:0,第1行字符2;`這似乎與IE隱形IFRAME有關。任何想法如何解決它? – 2011-02-14 15:27:37
我測試了另一個Backbone.js教程,它利用Backbone的歷史記錄和IE7中出現的相同問題。以下是由Elf Sternberg [link](http://clients.dominic-mercier.com/backbone/)製作的演示的網址。正如你所看到的,當你點擊一個項目時,哈希將變爲#item/c1,並在50 ms(這是檢查哈希變化的間隔幀)後變回#。也許我們都使用錯誤的Backbone的歷史?你能提供一些真實的使用情況嗎? – 2011-02-14 17:20:39
問題是ie7中的行爲與其他瀏覽器完全不同。哈希標記不會在加載頁面時加載,哈希標記不會像其他瀏覽器那樣在更改後自動保存在歷史記錄中。我想這個需要在將來得到解決,以便所有瀏覽器的行爲都一樣。 – Julien 2011-03-18 16:49:23