zoukankan      html  css  js  c++  java
  • js中的referrer使用,返回上一页

    js完整代码:

    <script language="javascript">

        var refer=document. referrer ;
        document.getElementById('backurl').value=refer;
    </script>

    HTTP_REFERER

    链接到当前页面的前一页面的 URL 地址。不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改 HTTP_REFERER。因此,这个变量不总是真实正确的。

    注意 document.referrer; 和HTTP_REFERER” 中间差一个字母,却是不同的概念的东东,请注意使用

    js中的referrer使用,返回上一页


    在js中写上location.href = document.referrer;就可以实现跳转到上一个页面了,让用户觉得体验很好


    但是在IE中referrer就没那么尽人意了啊,IE会清空referrer

    众所周知,我们web开发人员痛恨IE浏览器,因为IE不支持标准,标准外的默认行为又和其他浏览器经常不一致:
    在IE中用javascript做跳转,比如用window.location.href = “http://www.google.com”; google无法取到浏览器请求的HTTP referrer,因为IE清空了document.referrer

    而其他主流浏览器Firefox和Chrome都会保留referrer,这意味着IE又要享受“部长级”特殊待遇了:

    if (/MSIE (d+.d+);/.test(navigator.userAgent)){ 
       var referLink = document.createElement('a');
       referLink.href = url; 
       document.body.appendChild(referLink);
       referLink.click();
    }else {
       location.href = url; 
    }

    这样的原理就是给IE浏览器的页面偷偷加了个链接,然后自动点这个链接,于是referrer就能保留了。


    所以我们的根据不同浏览器的不同情况,必须的考虑完整,让代码变得强壮。


  • 相关阅读:
    if控制器+循环控制器+计数器,控制接口分支
    前置处理器
    逻辑控制器
    配置元件
    基础元件
    docker etcdctl报错:etcdctl No help topic for 'put'
    celery定时执行ansible api返回为空的问题
    Ansible+Jenkins+Gitlab搭建及配置
    进击的Python【第十六章】:Web前端基础之jQuery
    进击的Python【第十五章】:Web前端基础之DOM
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3341728.html
Copyright © 2011-2022 走看看