2011-07-26 37 views
0

背景;jQuery hashchange #summary問題

我有一個JavaScript應用程序,使用jQuery,特別是hashchange 插件(http://plugins.jquery.com/project/hashchange)。該應用程序由瀏覽器中的散列值「控制」 - 即當散列改變時,應用程序被通知並相應地改變狀態。

該應用程序用於填寫表單。因此,通過 所有形式的頁面,最後,可以提交表單前,他 看到了「摘要」頁即包含所有表單域頁面,進入 值用戶的步驟。逐步瀏覽表單頁面,更改#0,#1,#2和 等哈希值(當然,取決於實際表單中的頁數)。摘要 頁面被稱爲#summary。

現在,這幾乎適用於所有平臺和瀏覽器。然而,當 在IE8在Windows XP SP3上運行 - 一個問題出現了:

好像每當到「#summary」的 哈希改變事件不會觸發的網址修改散列部。

這已通過處理程序代碼中的斷點進行驗證。如果表格頁面 正常觸發,則摘要頁面無任何反應。如上所述,在所有其他 操作系統和瀏覽器配置這工作正常。

我基本上有兩個想法可以嘗試,但是如果沒有一些 開發工作(這是項目上的稀缺資源),這兩者都無法完成。

  1. 嘗試另一個散列更改插件。似乎hashchange取自「歷史」 插件。所以也許我可以嘗試那個 - 或者還有其他建議?

  2. 將摘要頁面的名稱更改爲其他內容,例如, #驗證。

這兩個聽起來有點絕望,因此這篇文章。意見或建議是 非常歡迎。

由於提前, 的Mads

回答

1

這似乎是最簡單的方法是隻更改頁面的名稱,但如果你堅持不讓名字我建議兩個不同的插件。

第一個DavisJShash routing extension是我已經使用和推薦了幾次。

還有本Cherry的Saner HTML5 History App有輕微的重量更輕庫,而不是像戴維斯整個客戶端的路由架構。