history.pushState实现改变浏览器地址栏url不刷新页面

js改变浏览器地址栏url不刷新页面

想改变地址栏且不刷新页面,HTML5为history对象添加了两个新方法,history.pushState()和history.replaceState(),用来在浏览历史中添加和修改记录,在这里正好用到的就是history.pushState()。

history.pushState()主要是在不刷新浏览器的情况下,创建新的浏览记录并插入浏览记录队列中。

 var stateObject = {};	//--stateObject是一个JavaScript对象
 var title = "";	//几乎没有浏览器支持该参数,但是传一个空字符串会比较安全。
 var newUrl = "";	//新的历史记录条目的地址(可选,不指定的话则为文档当前URL);
 history.pushState(stateObject, title, newUrl);

这里要注意的是 newUrl,浏览器在调用pushState()方法后不会加载该地址;传入的URL与当前URL应该是同源的,否则,pushState()会抛出异常。
for example

history.pushState({}, '', 'data=1');

如果原地址是https://www.baidu.com,则触发改变后,你会发现地址为https://www.baidu.com?data=1,且页面没有刷新。当然也可以跳完整地址,但不可跨域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值