源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-06-08 02:39 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:IE中JS跳转丢失referrer问题的2个解决方法
曾整理过一个[url=http://www.1sucai.cn/article/52349.htm]各种页面跳转方法中referrer丢失的情况[/url],其中提到,在IE中,使用类似 location.href = "a.html"这样的方式跳转页面时,在目标页面中 document.referrer的值会是空。这应该是IE的一个 bug。 大多数情况下,这个问题不会给我们带来麻烦,但有时候我们不得不用JavaScript来跳转,同时又要在下一个页面收集 document.refer,这时就得想想其他办法了。 [b]Form GET方法[/b] 首先想到的是使用Form表单,用JS发起一个GET请求。代码类似下面这样:
[u]复制代码[/u] 代码如下:
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能正常指向上一个页面。 [b]A元素模拟点击方法[/b] 网上搜索了一下,发现司徒正美的博客上记录了这个问题的另一个处理方法:
[u]复制代码[/u] 代码如下:
//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表单的方案更好一些。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部