HTML5 History API的优雅降级

时间:2012-12-11 20:14:07

标签: javascript html5

我正在使用原生HTML5历史记录API调用,我知道cross brower compatibility issues,但在我的具体用例中,这些并不重要。对于我有限的需求,浏览器的行为始终如一。上面链接中的表格讲述了同样的故事。所以我真的不想在页面上添加另一个JS库(History.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) {};
}

1 个答案:

答案 0 :(得分:2)

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

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