关于浏览器的history

最近遇到一个很奇特的问题:app上一个按钮绑定了一个连接,如今须要更换这个连接,可是app不支持更换连接,那么从前端角度考虑,我采用加载该页面脚本,而后跳转到新的页面,可是这样作会有一个问题,跳到自信的页面后点击返回按钮会一直跳到新的页面,致使返回按钮失效。后来查看资料使用了window.location.replace()方法,这种方法在谷歌浏览器是能够的,可是在app里面仍是会存在上面的问题。
最后我从window对象的history入手解决了这个问题。前端

 

即history.replaceState();方法,这个方法接受三个参数,第一个是状态对象,第二个是页面标题,第三个是页面连接。具体代码以下浏览器

if (history.replaceState) {
   history.replaceState(null,document.tittle,"http://******");  
   history.go(0);  
} else {
  window.location.replace("http://*****");
}

history.replaceState();发放会替换当前页面的浏览记录,及页面标题替换为:document.tittle,地址栏的连接替换为“http://****”,至因而不是存在“http://****”则不会去验证的;history.go(0)作到了页面刷新,及刷新我想看到的页面,history.go(1)前进一页,history.go(-1)后退一页,这样,用户进入了老的页面可是去自动跳转到我但愿出现的新的页面,并且浏览器的历史记录里面是记录的新的页面的地址,完美解决。app

 

参考连接:https://developer.mozilla.org/zh-CN/docs/Web/API/Historyspa