Ember 文档 states它可以设置为使用 History API 进行路由,而不是使用基于哈希的片段:
App.Router.reopen({
location: 'history'
});
但是我找不到任何关于如果浏览器不支持 History API 会发生什么的提及。它会回退到使用像 History.js 这样的哈希吗?
如果不支持,我是否应该检查 History API 支持并在不支持时将历史实现切换为哈希?
最佳答案
在 ember 源中似乎没有任何 History API 支持检测。
因此,如果您将 location
设置为 history
,并且没有支持,您的路由可能会失败。
如果您打算支持旧浏览器,最安全的选择是像您说的那样:
if (window.history && window.history.pushState) {
App.Router.reopen({
location: 'history'
});
}
2014 年 1 月 23 日更新
如果您在 Canary 中启用 ember-routing-auto-location
功能,您现在可以使用 location:'auto'
。
关于javascript - 如果浏览器不支持 History API,Ember 路由是否会退回到使用哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15056877/