PHP世纪论坛

 找回密码
 立即注册
搜索
查看: 301|回复: 0

IE中使用location.href跳转丢失referrer的问题

[复制链接]

32

主题

32

帖子

194

积分

新手上路

Rank: 1

积分
194
发表于 2016-3-17 19:36:09 | 显示全部楼层 |阅读模式
IE中使用location.href跳转会丢失referrer,下一个页面如何获取呢?

Form GET方法
使用Form表单,用JS发起一个GET请求。代码类似下面这样:
  1. function goToPage(url) {
  2.     if (isIE) {
  3.         // IE浏览器
  4.         var frm = document.createElement("form");
  5.         frm.action = url;
  6.         frm.method = "GET";
  7.         document.body.appendChild(frm);
  8.         frm.submit();
  9.     } else {
  10.         // 非IE
  11.         location.href = url;
  12.     }
  13. }
复制代码
这个方法可以如同预期地工作,目标页面中 document.referrer能正常指向上一个页面。

A元素模拟点击方法
  1. //define for all browsers
  2. function goto(url) {
  3.     location.href = url;
  4. }

  5. //re-define for IE
  6. if (isIE) {
  7.     function goto(url) {
  8.         var referLink = document.createElement('a');
  9.         referLink.href = url;
  10.         document.body.appendChild(referLink);
  11.         referLink.click();
  12.     }
  13. }
复制代码
原理很简单,先创建了一个 A元素,指定其 href属性为目标链接,然后再使用JS触发它的点击事件。经测试,在目标页面也能正常取到 document.referrer。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|PHP世纪论坛 ( 豫ICP备15004666号-2 )

GMT+8, 2018-1-19 23:31

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表