当前位置: 首页 > 编程笔记 >

IE中JS跳转丢失referrer问题的2个解决方法

曾翰飞
2023-03-14
本文向大家介绍IE中JS跳转丢失referrer问题的2个解决方法,包括了IE中JS跳转丢失referrer问题的2个解决方法的使用技巧和注意事项,需要的朋友参考一下

曾整理过一个各种页面跳转方法中referrer丢失的情况,其中提到,在IE中,使用类似 location.href = "a.html"这样的方式跳转页面时,在目标页面中 document.referrer的值会是空。这应该是IE的一个 bug。

大多数情况下,这个问题不会给我们带来麻烦,但有时候我们不得不用JavaScript来跳转,同时又要在下一个页面收集 document.refer,这时就得想想其他办法了。

Form GET方法

首先想到的是使用Form表单,用JS发起一个GET请求。代码类似下面这样:


function goToPage(url) {

    if (isIE) {

        // IE浏览器

        var frm = document.createElement("form");

        frm.action = url;

        frm.method = "GET";

        document.body.appendChild(frm);

        frm.submit();

    } else {

        // 非IE

        location.href = url;

    }

}

这个方法可以如同预期地工作,目标页面中 document.referrer能正常指向上一个页面。

A元素模拟点击方法

网上搜索了一下,发现司徒正美的博客上记录了这个问题的另一个处理方法:


//define for all browsers

function goto(url) {

    location.href = url;

}

//re-define for IE if (isIE) {     function goto(url) {         var referLink = document.createElement('a');         referLink.href = url;         document.body.appendChild(referLink);         referLink.click();     } }

原理很简单,先创建了一个 A元素,指定其 href属性为目标链接,然后再使用JS触发它的点击事件。经测试,在目标页面也能正常取到 document.referrer。

这个方法代码更简短一点,应该比上面的使用 form表单的方案更好一些。

 类似资料:
  • 本文向大家介绍jquery mobile页面跳转后样式丢失js失效的解决方法,包括了jquery mobile页面跳转后样式丢失js失效的解决方法的使用技巧和注意事项,需要的朋友参考一下 用ajax跳转的时候,从a.html跳转到b.html后,b.html的css以及js都失效了。 方法: 将当前页面b.html需要用到的css以及js放在<page>div内。 原理: 由于jqm的ajax跳转

  • 本文向大家介绍js如何解决数字精度丢失的问题?相关面试题,主要包含被问及js如何解决数字精度丢失的问题?时的应答技巧和注意事项,需要的朋友参考一下 const verifyFunc = (left, right) => { return Math.abs(left - right) < Number.EPSILON * Math.pow(2, 2); }; console.log(verifyFu

  • 本文向大家介绍php页面跳转session cookie丢失导致不能登录等问题的解决方法,包括了php页面跳转session cookie丢失导致不能登录等问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 thinkphp开发的一个项目,登录成功后又跳转到登录页面,在提交信息后输出session都是正常的,没有问题,但是页面跳转后,session出现丢失现象,无法正常完成登陆。 通过查找资料

  • 本文向大家介绍C# SESSION丢失问题的解决办法,包括了C# SESSION丢失问题的解决办法的使用技巧和注意事项,需要的朋友参考一下 我们在用C#开发程序的时候经常会遇到Session很不稳定,老是数据丢失。下面就是Session数据丢失的解决办法希望对您有好处。 1、在WEB.CONFIG文件中修改SESSION状态保存模式,如:<sessionState mode='StateServe

  • 本文向大家介绍Spring Security跳转页面失败问题解决,包括了Spring Security跳转页面失败问题解决的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring Security跳转页面失败问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天新建SpringBoot项目练手,第一次添加了Spring Se

  • 本文向大家介绍Django数据库连接丢失问题的解决方法,包括了Django数据库连接丢失问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 问题 在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种 OperationalError: (2006, 'MySQL server has gone away') OperationalError: (2013, 'Los