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


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

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

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

  2. 用什么方式可以代替 H5 history.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,这个其实不用说的哈。。

路由 router history.js JavaScript

TXYZS07 9 years, 3 months ago
looozz answered 9 years, 3 months ago

Your Answer