我可以跟踪新窗口链接的引荐来源吗?

时间:2011-07-12 18:50:23

标签: javascript html referrer

案例:

  • 网站A包含一个在新窗口中打开网站B的链接。
  • 网站B中的脚本正在尝试获取网站A网址。

我的问题:有没有办法跟踪使用target="_blank"或Javascript window.open()功能打开的新窗口的引荐来源

如果是,那么有没有办法完全隐藏推荐人?

5 个答案:

答案 0 :(得分:5)

Referrer位于HTTP标头中,因此无论窗口是空白还是新建,它都可用。您可以使用以下网址获取网址:

 alert(document.referrer);

有些网站使用此功能来保护自己的网站免受click-jacks等攻击,因此将引荐来源隐藏在链接页面中是不合适的。允许referrer spoofing的浏览器被认为是不安全的,并且在找到时往往会进行修补。

更新

也许它并不像我想象的那样皱眉。 HTML5有<a>的属性,无法在HTTP标头中发送引荐来源:rel = "noreferrer"

答案 1 :(得分:4)

使用window.open的IE它失去了引用者。只需使用jQuery或重新编写它而不使用jQuery:

$("<form />").attr("action", "url").attr("target", "_blank").appendTo(document.body).submit();

答案 2 :(得分:2)

如果你控制了两个页面,就像这样打开窗口:

var myWindow = window.open('http://my_url', 'title', 'width=500,height=350,top=100,left=100');
if(!myWindow.opener) myWindow.opener = self;

旁注:给窗口一个标题很重要,否则IE会自行停止。

在打开的窗口中,您将引用“开启者”:

alert(opener.window.location);

答案 3 :(得分:0)

您是否检查了开场白位置?如果我没记错的话,它对我有用。

答案 4 :(得分:-1)

最好的方法是:

    var myWindow = window.open('', 'title', 'width=500,height=350,top=100,left=100');
myWindow.location.href = 'redirect.asp';

我希望它会有用