document.referrer 的问题

Problems with document.referrer

我在某些站点上使用 document.referrer 时遇到了一些问题,即使是使用 HTTP 协议的参考站点也是如此。

  1. 什么情况下document.referrer可能为空(HTTPS转HTTP除外)?

  2. 仅获取 url 参考的最佳方法是什么 document.referrer?

  3. 在我的站点中,document.referrer 是空的,但是当我查看 Analytics 网站时,出现了引用。

document.referrernot empty 如果您的网站 URL 是从其他网站点击的,例如来自 google 搜索、来自 facebook、twitter 等...

因此,如果有人从书签 o 打开您的网站,直接键入您的网站 URL,document.referrer 就是 empty

让我们看看这些例子:

点击这个linkhttp://www.w3schools.com/jsref/prop_doc_referrer.asp可以看到document.referrer是

如果您在 google HTML DOM referrer Property 中搜索,document.referrer 将是 http://google.es/...

如果您复制 http://www.w3schools.com/jsref/prop_doc_referrer.asp 在浏览器中打开新标签并粘贴,document.referrer 将是 empty

const referrerPage = document.referrer;

if ((referrerPage.indexOf(window.location.href) > -1) !== true) { // If referral is same page then page will not redirect.
    if (referrerPage.indexOf('viewplans') <= -1) {
        window.location.href = '/';
        return false;
    }
}

viewplans 是页面名称。

为了回答您的第二个问题,这个简单的脚本 returns 您来自的网站 URL:

    <SCRIPT>
        document.write ( document.referrer )
    </SCRIPT>

参见:https://www.nku.edu/~manningd/javascript/referrer.html