backbone.js - 链接中的 anchor

标签 backbone.js backbone-routing

鉴于:

  • Tom — 拥有支持 pushState 的现代浏览器
  • Fred——他的浏览器不支持 pushState
  • super.app由 Backbone 提供支持的 Web 应用程序

  • Tom 浏览到 products/1所在页面#special-offer节存在。

    Backbone 是否允许 Tom 与 Fred 共享链接,包括特价部分的 anchor :http://super.app/products/1#special-offer

    Fred 会被重定向到 http://super.app/#products/1 (例如:没有 #special-offer )?

    换句话说,Backbone 允许使用 anchor 吗?

    最佳答案

    我在这里做了一个测试 http://bl.ocks.org/abernier/raw/3183257/

    看来是的:

  • anchor 可以与支持 pushState 的浏览器一起使用:http://bl.ocks.org/abernier/raw/3183257/product1.html#special-offer
  • 而对于 IE<10,则转换为 http://bl.ocks.org/abernier/raw/3183257/#product1.html例如:没有 #special-offer

  • 我唯一需要注意的是禁用基于哈希的历史浏览器的 anchor ,方法是:
    if (!Backbone.history._hasPushState) {
      $('body').delegate('a[href^=#]', 'click', function (e) {
        e.preventDefault();
      });
    }
    

    关于backbone.js - 链接中的 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11672687/

    相关文章:

    javascript - 确定字段(在提交事件上)是下拉列表还是输入

    javascript - 特定分割后不能插入内容。主干网.js

    backbone.js - Backbone.Marionette - Grunt Browserify - "require is not defined"

    backbone.js - REST api 中的 Backbone 和复合模型 - 可能吗?

    javascript - 将路由添加到 Backbone.js 路由器,包括 404 处理程序

    javascript - 使用 routes 属性的 Backbone 中的默认路由

    javascript - 当 Backbone View 仍在组装 DOM 元素时,如何在 DOM 元素上设置事件触发器?

    javascript - 使用 Promise 加载主干模板

    javascript - 无法使 Marionette 路由器工作

    javascript - Backbone.Sync 与 Safari 的问题