Heim > Fragen und Antworten > Hauptteil
【问题再补充 - 题主】
刚在某宝上随便找了个商品页,切换商品颜色的那里,firefox
下看到地址栏有变化,而且是修改的当前历史记录而不是追加;而IE8
下历史记录也并没有什么变化,然而页面地址也没有变化。。
所以我在想,是不是不支持H5
的浏览器实现不了history.replaceState
这种功能。
【问题已修改 - 题主】
经答友及本人测试的结论:
history.js对/
解析有bug(话说作者为毛不维护代码了,好像两年没有更新了)
那么咱就放弃history.js吧,专心研究下面两个问题:
location.hash = '#a/b'
是不是可以完全代替H5
的history.pushState
?如果有区别,区别在哪里?
用什么方式可以代替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,这个其实不用说的哈。。
阿神2017-04-10 16:12:36
结贴
对于不支持H5的浏览器:
用location.hash直接修改hash值的方式来代替pushState。
没找到可以用什么方式来代替history.replaceState。