javascript - HTML5 History API 的优雅降级

标签 javascript html

我正在使用 native HTML5 History API 调用并且我知道 cross brower compatibility issues ,但在我的特定用例中,这些并不重要。对于我有限的需求,浏览器的行为始终如一,上面链接中的表格讲述了同样的故事。所以我真的不想在页面 (History.js) 上添加另一个 JS 库,但我绝对希望它在不支持它们的浏览器中优雅地失败。我不希望他们抛出 JS 错误。

例如,IE(我想其他不支持的浏览器也会)抛出这个 JS 错误:Object doesn't support property or method 'replaceState'

我试过这样做,但它不起作用:

window.history = window.history || {};
if (jQuery.isEmptyObject(window.history)) {
    window.history.prototype.replaceState = function(a,b,c) {};
    window.history.prototype.pushState = function(a,b,c) {};
}

最佳答案

检查历史对象中是否存在pushState

if( !(window.history && 'pushState' in window.history) )

关于javascript - HTML5 History API 的优雅降级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827774/

相关文章:

javascript - es6 箭头函数中的花括号代表每个

javascript - 如何在一个 Angular 组件中处理多个主题?

html - 过渡动画需要一些 CSS

javascript - 单击按钮运行功能 - 不起作用?

Javascript 未从 remotipart 的提交后执行

javascript - YOUTUBE 在移动设备上自动播放

javascript - 从外部闭包停止函数执行?

html - CSS 注释布局

javascript - Firefox 中的 NS_ERROR_FAILURE 在隐藏的 iframe 中设置 Canvas 字体

html - 从另一个 css 类继承