zoukankan      html  css  js  c++  java
  • 关于浏览器的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)后退一页,这样,用户进入了老的页面但是去自动跳转到我希望出现的新的页面,而且浏览器的历史记录里面是记录的新的页面的地址,完美解决。

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

  • 相关阅读:
    delphi try except语句 和 try finally语句用法以及区别
    正向代理与反向代理(转)
    kbmMW功能
    problem 202,263、232、21、231
    leetcode day8
    leetcode day7
    VS2013 opencv2.4.8
    web 前端routine
    leetcode day6
    leetcode day5
  • 原文地址:https://www.cnblogs.com/zhangbob/p/9268348.html
Copyright © 2011-2022 走看看