|
IE中使用location.href跳转会丢失referrer,下一个页面如何获取呢?
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。
|
|