【问题标题】:Using Backbone.js hash based navigation in IE7在 IE7 中使用 Backbone.js 基于哈希的导航
【发布时间】:2011-03-15 19:37:17
【问题描述】:

我正在构建一个带有基于哈希的导航的 Backbone.js 应用程序。除了 IE7,它在任何地方都可以正常工作。在 IE7 中,当我单击更改哈希的链接时,会发生以下情况:

  • 页面发生变化
  • 哈希然后恢复到以前的值
  • 页面也切换到上一页

我通过在加载每个页面后向控制器添加saveLocation 调用来使链接正常工作,但是当我使用后退按钮或重新加载页面时,它总是将我带到主页而不是返回或重新加载当前页面页面。

如何使后退按钮和页面重新加载正常工作?

【问题讨论】:

    标签: backbone.js


    【解决方案1】:

    我对主干进行了一些更改,以使其适合我。你可以在这里查看我的仓库:

    https://github.com/juggy/backbone

    到目前为止对我有用。我不知道我是否打破了其他任何东西。我的灵感来自 YUI 和 https://github.com/cowboy/jquery-hashchange/blob/master/jquery.ba-hashchange.js

    【讨论】:

    • 我已经在 IE8、Firefox 和 Chrome 中测试了你的 fork,它似乎在所有这些中都运行良好。在 IE7 页面重新加载工作正常(这很棒),但是在我使用后退按钮并在页面之间导航几次后历史堆栈变得不正确。你的版本是对 IE7 的一个很好的改进,所以谢谢!
    【解决方案2】:

    我也遇到了与您相同的 IE7 问题,并尝试了各种方法(saveLocation 的东西、Backbone 补丁等).. 但没有成功。在多页切换时似乎 IE7 误会了。

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

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

    我知道这是最糟糕的解决方法,因为此解决方案依赖于其他插件,但幸运的是,Backbone.Controller 只处理您不必使用它的路由和状态处理。

    jQuery 历史插件可以正常工作。

    【讨论】:

      【解决方案3】:

      答案已发布在Backbone.js cause bug only in IE7

      【讨论】:

      • 我看到了,没用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 2012-07-08
      • 2011-06-25
      • 2017-10-20
      相关资源
      最近更新 更多