2011-07-26 36 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有轻微的重量更轻库,而不是像戴维斯整个客户端的路由架构。