Javascript GA//通过生成唯一输出的类跟踪onClick事件?
下面是我一直在尝试的代码;我基本上只是想用它来跟踪通用GA的页面;然后指定一个类来跟踪类别中的onClick事件,并在文件名的末尾自动生成1,2,3。我基本上只是试图在一个网站中简化对onClick文件的跟踪;我不想继续手动将onClick代码添加到我试图在页面上跟踪的每个文件中我下面的代码怎么了?Javascript GA//通过生成唯一输出的类跟踪onClick事件?,javascript,jquery,google-analytics,Javascript,Jquery,Google Analytics,下面是我一直在尝试的代码;我基本上只是想用它来跟踪通用GA的页面;然后指定一个类来跟踪类别中的onClick事件,并在文件名的末尾自动生成1,2,3。我基本上只是试图在一个网站中简化对onClick文件的跟踪;我不想继续手动将onClick代码添加到我试图在页面上跟踪的每个文件中我下面的代码怎么了? <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-35609953-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackEvent', 'Downloads', 'JPG', '/downloads/img/LowRes01.jpg']);
(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);
})();
</script>
<!-- GA track all onClicks -->
<script>
$(function(){
$('.downloadsmall a').attr("onclick", function(i){
var x='LowRes0'+(i+1)+'.jpg';
return "_gaq.push(['_trackPageview', '/downloads/img/"+x+"'])";
return "_gaq.push(['_trackEvent', 'Downloads', 'JPG', '/downloads/img/"+x+"'])";
});
});
</script>
<!-- End GA track all onClicks -->
<style>
#wrap {
width: 940px;
margin-left: 0 auto;
}
#left {
width: 50%;
float: left;
}
#right {
width: 50%;
float: right;
}
.downloadsmall {
height: 50px;
width: 200px;
border: 3px dotted #333;
}
</style>
</head>
<body>
<div id="wrap"><!-- Wrap -->
<div id="left">
<p class="downloadsmall">
download: <a href="http://www.google.com">Low Res</a>
</p>
</div>
<div id="right">
<p class="downloadsmall">
download: <a href="http://www.yahoo.com">Low Res</a>
</p>
</div>
</div><!-- Wrap -->
var _gaq=_gaq | |[];
_gaq.push([''设置帐户','UA-35609953-1']);
_gaq.push([''u trackPageview']);
_gaq.push([''u trackEvent','Downloads','JPG','/Downloads/img/LowRes01.JPG']);
(功能(){
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);
})();
$(函数(){
$('.downloadsall a').attr(“onclick”,function(i){
var x='LowRes0'+(i+1)+'.jpg';
返回“_gaq.push”([''u trackPageview','/downloads/img/“+x+”)”;
返回“_gaq.push”([''u trackEvent','Downloads','JPG','/Downloads/img/“+x+”)”);
});
});
#包裹{
宽度:940px;
左边距:0自动;
}
#左{
宽度:50%;
浮动:左;
}
#对{
宽度:50%;
浮动:对;
}
.下载小型{
高度:50px;
宽度:200px;
边框:3个点#333;
}
下载:
下载:
更新--
以下是根据Jasper的回复更新的代码;(谢谢!)
var _gaq=_gaq | |[];
_gaq.push([''设置帐户','UA-35609953-1']);
_gaq.push([''u trackPageview']);
_gaq.push([''u trackEvent','Downloads','JPG','/Downloads/img/“+x+”]);
$(函数(){
$('.downloadsall a')。在(“单击”,函数()上){
var theHREF=$(this.attr('href'),
myGAQ=|gaq | |[];
myGAQ.push([''u trackPageview',theHREF]);
myGAQ.push([''u trackEvent','Downloads','JPG',theHREF]);
});
});
您正在从事件处理程序返回一个字符串,它实际上不会执行任何操作。相反,只需正常运行代码。此外,一旦您从函数中返回某个内容,该函数将停止执行,因此第二个return
甚至没有运行
试试这个:
$(function(){
$('.downloadsmall a').on("click", function(i){
var x = 'LowRes0'+(i+1)+'.jpg',
myGAQ = _gaq || [];
myGAQ.push(['_trackPageview', '/downloads/img/' + x]);
myGAQ.push(['_trackEvent', 'Downloads', 'JPG', '/downloads/img/' + x]);
});
});
此代码实际上正在访问GA\u gaq
对象,并要求它创建页面视图和事件跟踪信标
但是代码仍然不应该工作,因为事件处理程序中的i
参数实际上是event
对象,而不是索引(我假设这是您想要的)。您可以获取链接的实际HREF并将其用作跟踪数据:
$(function(){
$('.downloadsmall a').on("click", function(){
var theHREF = $(this).attr('href'),
myGAQ = _gaq || [];
myGAQ.push(['_trackPageview', theHREF]);
myGAQ.push(['_trackEvent', 'Downloads', 'JPG', theHREF]);
});
});
谢谢-刚刚更新了我的Q;我把你写的东西放进去了;我要测试它!
$(function(){
$('.downloadsmall a').on("click", function(){
var theHREF = $(this).attr('href'),
myGAQ = _gaq || [];
myGAQ.push(['_trackPageview', theHREF]);
myGAQ.push(['_trackEvent', 'Downloads', 'JPG', theHREF]);
});
});