【问题标题】:Disable Backbone.js hashes entirely, but keep pushState in History?完全禁用 Backbone.js 哈希,但将 pushState 保留在历史记录中?
【发布时间】:2012-03-03 00:50:49
【问题描述】:

我想使用 Backbone 出色的路由系统,但我不想为旧版浏览器提供任何形式的哈希支持。在Backbone.History 中使用pushState 时是否可以完全禁用哈希?

【问题讨论】:

    标签: javascript html backbone.js


    【解决方案1】:

    backbone.js 页面上没有记录,但我在带注释的源代码中找到了它。如果你将hashChange false 传递给Backbone.history.start(),骨干网将不会使用哈希回退。

    EG:

    Backbone.history.start({hashChange:false, pushState:true})
    

    有很多充分的理由支持 pushState,而不是回退到使用哈希,同时 仍然 支持旧浏览器(浏览器将转到新的 url 并重新加载而不是使用 ajax 更新)。

    【讨论】:

      【解决方案2】:

      没有对此的内置支持,如果您的应用不能在旧版浏览器中运行很重要,您可以修改您的 Backbone 版本。您可以在 DomReady 函数的开头添加如下内容:

      if (window.history && window.history.pushState) {
           // main script
      } else {
           alert("Your browser doesn't support push state and I don't want backwards compatibility");
           window.location('http://away.from.here');
      }
      

      【讨论】:

        猜你喜欢
        • 2015-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 2011-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多