如果浏览器不支持History API,Ember路由是否会回退到使用哈希?

Und*_*ion 8 javascript router history.js ember.js html5-history

Ember文档声明可以将其设置为使用History API进行路由而不是使用基于散列的片段:

App.Router.reopen({
  location: 'history'
});
Run Code Online (Sandbox Code Playgroud)

但我没有提到如果浏览器不支持History API将会发生什么.它会回归到使用像History.js这样的哈希吗?

如果没有,我是否应该检查History API支持并将历史记录实现切换为哈希(如果不支持)?

Ted*_*nny 17

在ember源中似乎没有任何History API支持检测.

因此,如果您设置locationhistory,并且没有支持,您的路由可能会失败.

如果您打算支持旧版浏览器,最安全的赌注就像您说的那样:

if (window.history && window.history.pushState) {
    App.Router.reopen({
      location: 'history'
    });
}
Run Code Online (Sandbox Code Playgroud)

更新2014年1月23日

location:'auto'如果您ember-routing-auto-location在金丝雀中启用功能,现在可以使用.