2012-04-25 108 views
0

我有一个网站,使用谷歌分析,并使用了一些域。有人问我这样做是为了增加跨网域跟踪:跨域谷歌分析跟踪时,使用fancybox iframe

1)添加一个异步跟踪

var _gaq = _gaq || []; 
_gaq.push(['_setAccount', 'UA-21602333-1']); 
_gaq.push(['_setDomainName', 'domain.com']); 
_gaq.push(['_setAllowLinker', true]); 
_gaq.push(['_trackPageview']); 

(function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
})(); 

2)将以下代码添加到去其他领域之一的所有链接。

<a href="http://www.domain-aanvraag.nl[rest van de link]" onclick="_gaq.push(['_link', 'http://www.domain.com']); return false;">Go!</a>) 

的_link选项执行以下操作根据谷歌:

此方法与_setDomainName(协同工作)和 _setAllowLinker()方法来启用跨域用户跟踪。 _link()方法通过URL参数(HTTP GET)将GATC cookie从该站点传递到另一个站点。它还会更改document.location并将用户重定向到新的URL。

好的。这一切都适用于正常的传出链接。

这是问题所在。我有一个表单,用户可以在其中选择两个单选按钮中的一个,然后选择一个他点击提交按钮。如果选择第一个单选按钮,fancybox弹出窗口将打开,其中的iframe指向另一个域上的页面。如果打开第二个单选按钮,当前窗口将重定向到该域上的另一个页面。

我只想做_gaq_push(['_link', ...]) thingy当用户选择第一个选项并单击该按钮。

所以,我有两个问题与此:

  1. 我应该在哪里放置的onclick。
  2. 如何使用fancybox使用此代码?它似乎总是设置主屏幕的document.location,而不是我的fancybox中的iframe,导致我的屏幕完全刷新。

这里是我的代码精简工作示例至今:https://www.domain.com/test/analytics.html

回答

0

因为你已经使用jQuery你可以用这个的fancybox。

给单选按钮clickme的ID,然后将这个脚本的单选按钮后

<input id="clickedme" type="radio" name="option" value="1" data-link="http://ato.xximo-aanvraag.nl/Home/Step1?companytype=zzp"> 

<script> 
$("#clickme").bind("click", function(event){ 
    _gaq.push(['_link', 'http://www.xximo.com']); 
    alert('click recorded, you can remove me') // remove if needed 
}); 
</script> 

//hoop dat het is wat je zoekt ;) 
+0

感谢。我会在周末后尝试。我认为_link方法会强制整个页面刷新。 :/ – koenpeters 2012-04-28 15:27:39

+0

您可以将_gaq.push更改为_trackEvent,_trackPageview等等。 – Scriptor 2012-04-28 17:43:46