使用history.js 解决IE9不支持pushState接口

本文介绍了一种在IE9及微信环境下解决浏览器回退功能限制的方法,通过使用history.js库替代原生pushState,实现了跨平台的浏览器历史记录管理。特别注意在使用History.pushState时,URL参数中不能包含hash。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前写的阻止浏览器回退功能,之后发现,IE9下不支持pushState,导致微信下也不能很好的实现阻止浏览器回退(嵌套的情况下)。

 

今天使用history.js来解决了这个问题。

 

1.在github中找到history.js(点赞最多的那个)

2.下载找到 navite.history.js文件 (html4+html5文件夹下)

3. Import 之

 

然后history.pushState用History.pushState替换

 

因为history.js是使用hash来实现的,所以你在调用 History.pushState(参数1,参数2,参数3) 的参数3不能含有hash,加个类似‘?page=1’这样的参数能解决。

这点很蛋痛,单还好目前还没影响到什么业务。后期如果要用replaceState的时候可能会出点问题。这到时候再研究

转载于:https://www.cnblogs.com/saving/p/10960300.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值