suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - IE8上用什么方式来代替H5的history.replaceState?

【问题再补充 - 题主】
刚在某宝上随便找了个商品页,切换商品颜色的那里,firefox下看到地址栏有变化,而且是修改的当前历史记录而不是追加;而IE8下历史记录也并没有什么变化,然而页面地址也没有变化。。
所以我在想,是不是不支持H5的浏览器实现不了history.replaceState这种功能。

【问题已修改 - 题主】
经答友及本人测试的结论:
history.js对/解析有bug(话说作者为毛不维护代码了,好像两年没有更新了)
那么咱就放弃history.js吧,专心研究下面两个问题:

  1. location.hash = '#a/b'是不是可以完全代替H5history.pushState?如果有区别,区别在哪里?

  2. 用什么方式可以代替H5history.replaceState

=================== 之前 ===================
这个history.js就是这个:
browserstate/history.js - GitHub

我也看了他的demo:
History.js - Demo - GitHub

然而我的问题,他并没有提及我的疑问:
比如,这是可以正常运行的方式:

History.replaceState(null, null, '#abc');

但这个时候,就直接蛋疼了:

History.replaceState(null, null, '#abc/aa');

#号会自动被去掉。。

跪求解决方式~

顺带一说,我之所以引用history.js是为了兼容ie8/9,这个其实不用说的哈。。

高洛峰高洛峰2777 Tage vor774

Antworte allen(2)Ich werde antworten

  • 阿神

    阿神2017-04-10 16:12:36

    结贴
    对于不支持H5的浏览器:

    1. 用location.hash直接修改hash值的方式来代替pushState。

    2. 没找到可以用什么方式来代替history.replaceState。

    Antwort
    0
  • 黄舟

    黄舟2017-04-10 16:12:36

    试过这个吗? https://github.com/devote/HTML5-History-API

    Antwort
    0
  • StornierenAntwort