我可以翻译为:我能获取推荐者吗?

56

我有一个网站,我使用ASP.NET handler动态创建Javascript代码,在其中应该将引用添加到数据库中。

我想获取引荐来源的引荐来源,就像这样:

  • website1
  • website2(在此处创建像素到另一个站点)
  • website3(像素所在的地方)

我没有访问website1代码的权限,在website2上,我只能分配JavaScript。

如果我在当前应用程序状态下获取引荐来源,我会得到website2

是否有一种方法可以获得website1作为引荐来源?


“我在哪里可以将像素创建到另一个网站?” 嗯? - T.J. Crowder
3
@TJCrowder:我很确定这是关于使用引荐(查询字符串)来计算访问者数量的1x1像素图像。 - jAndy
3个回答

84

您可以传递此值:document.referrer

这个表达式需要在网站2上评估,而不是在网站3上。因此:

// website2.html
<img src="website3.com/pxl.gif" id="pxl" />
<script>
document.getElementById('pxl').src += '?ref=' + encodeURIComponent(document.referrer);
</script>

请求网站3的时候将包含引荐者信息。


20

在网站3上直接获取网站2的引荐者是不可能的。但是,由于您可以在网站2上使用javascript,您可以获取referrer (document.referrer),并将其添加到所获取到的像素的URL中。例如:

var referer = document.referrer;
var pixelUrl = 'http://website3/pixel?referrer=' + escape(referrer);
// create pixel...

希望这能有所帮助。


7
看起来在许多情况下 `document.referrer` 不起作用。
请改为使用完整的 `window.frames.top.document.referrer`。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接