哈克保持history.pushState ie8-9

时间:2014-11-26 00:55:36

标签: javascript jquery internet-explorer internet-explorer-8

在大多数现代浏览器上,我都可以使用:

history.pushState({}, 'Our Work','/url/path/');

显然IE并不支持这一点,但我想知道为什么我的简单黑客行为不起作用?

history = {
    pushState : function(state,title,url) {
        window.location = url;
    }
};

我也尝试过:

window.history = {
    pushState : function(state,title,url) {
        window.location = url;
    }
};

但是我找不到一个'成员'属性。

IE8甚至可以实现这一点吗?

我真的不想为这个简单的黑客包含一个完整的库,但它很奇怪,因为添加:

if (!window.console) {
    console = {
        log: function() {},
        error: function() {}
    };
}

修复我的控制台日志...

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

这是因为历史对象确实存在且无法完全替换。

但您可以添加其他方法

所以设置

history.pushState = function(state,title,url){alert(url);};

会做到这一点。