Javascript- history.pushState()在IE中不起作用

时间:2011-10-24 11:21:37

标签: javascript jquery

我使用History.js保存当前(历史可以在这里找到:https://github.com/browserstate/History.js/blob/master/README.md

现在它适用于除Internet Explorer之外的所有浏览器。我使用IE9,我不知道它是否适用于IE10。 无论如何,我的网址应如下所示:http://rlb.local/?bereich=3  但在IE中它看起来像这样:http://rlb.local/#http%3A//rlb.local?bereich=3 我不知道Internet Explorer如此奇怪地显示URL的原因是什么。

我将URL传递给pushState方法,如下所示: History.pushState(null,null,“?bereich = 3”);

编辑:这是使用它的函数:

function scrollingFunction(page, speedVar){
    $.scrollTo( {top: 0 , left: getPosition(page)} , speedVar, { axis:'xy', easing: 'easeInOut'});
    $('.mainNav').removeClass("active");
    $('#navLink_'+page).addClass("active");
    History.pushState(null,null,"?bereich="+page);
}

该功能用于在不同页面之间滚动。变量“page”是当前页码,如“1”,“2”,“3”等。我尝试将第二个参数作为字符串,但这也不起作用。

1 个答案:

答案 0 :(得分:2)

不确定这是否是您想知道的:IE9根本不支持HTML5历史记录API。因此,History.js使用URL的哈希部分来模拟它。

但是,如果您想知道为什么您的网址不是http://rlb.local/#?bereich=3 - 那就不知道了。这应该自动工作,因为History.js尝试根据其网站使用尽可能短的URL。也许它与你的“.local”域名有关。