首先,我不是网络开发人员,我是Google Analytics专业人员,所以如果这个问题看起来很基本而且没有使用正确的术语,我会道歉!...
我正试图让#trackEvent代码触发' onClick'对于某些社交按钮 - 但是当社交按钮在新窗口中打开时,它们已经运行onClick,如下所示....
<a href="#" onclick="window.open('http://www.facebook.com/share.php?u=http://www.londonpass.com/infographic/hampton-court.html&title=Hampton Court - History and Stories Infographic from the London Pass/','newWin','width=400,height=200')" class="facebook"></a>
我需要添加以下_trackEvent代码:
onClick=_gaq.push(['_trackEvent', 'EN', 'Tower of London', 'Facebook']);
所以我要做的就是在点击时向Google Analytics发送一个事件,同时不会打扰按钮功能。非常感谢任何帮助
答案 0 :(得分:1)
只需将跟踪命令放在onClick中的window open命令之前 像这样:
<a href="#" onclick="_gaq.push(['_trackEvent', 'EN', 'Tower of London', 'Facebook']);window.open('http://www.facebook.com/share.php?u=http://www.londonpass.com/infographic/hampton-court.html&title=Hampton Court - History and Stories Infographic from the London Pass/','newWin','width=400,height=200')" class="facebook"></a>
答案 1 :(得分:0)
如果您使用jquery,请使用jquery附加事件,而不是使用onclick
:
<script type="text/javascript">
$('.facebook').on('click', function () {
window.open('http://www.facebook.com/share.php?u=http://www.londonpass.com/infographic/hampton-court.html&title=Hampton Court - History and Stories Infographic from the London Pass/','newWin','width=400,height=200')
_gaq.push(['_trackEvent', 'EN', 'Tower of London', 'Facebook']);
//other code you like
});
</script>
使用纯javascript附加活动:
var socials = document.getElementByClass("facebook");
socials.addEventListener('click', myFunction, false);
定义你的功能:
<script type="text/javascript">
function myFunction () {
window.open('http://www.facebook.com/share.php?u=http://www.londonpass.com/infographic/hampton-court.html&title=Hampton Court - History and Stories Infographic from the London Pass/','newWin','width=400,height=200')
_gaq.push(['_trackEvent', 'EN', 'Tower of London', 'Facebook']);
//other code you like
}
</script>
答案 2 :(得分:0)
快速JavaScript / HTML课程:内联“onclick”-attribute描述的内容是“回调”函数的主体(在这种情况下,在单击元素时执行的方法)。在这种情况下,它会在单击锚点时在新窗口/选项卡中打开Facebook共享URL。
您要做的是为单击事件执行两个不同的回调。这将导致我们使用JavaScript来使用“addEventListener / attachEvent”来分配事件回调,因为内联“onclick” - 属性只允许单个回调处理程序,而添加侦听器可以为您提供为多个回调添加多个回调的好处。单一事件类型。正如其他人所提到的,如果你有jQuery或其他库可用,这可能是一个轻而易举的附件。
但是,如果您想要快速而又脏的修复而不会在HTML文档外部获得太多的JavaScript代码,则可以在现有的onclick-code之后添加_gaq-tracking代码在“onclick”-attribute中添加像这样:
<a href="#" onclick="window.open('http://www.facebook.com/share.php?u=http://www.londonpass.com/infographic/hampton-court.html&title=Hampton Court - History and Stories Infographic from the London Pass/','newWin','width=400,height=200');_gaq.push(['_trackEvent', 'EN', 'Tower of London', 'Facebook']);" class="facebook"></a>
这将导致跟踪Google Analytics中的点击和窗口打开。从语义上讲,这是非常难看的,因为它在单个代码中描述了多个处理程序,但是为了参数,我们假设您不介意HTML开始使用内联JS处理,我们甚至没有涉及到通过多个函数而不是直接单击处理程序委派窗口时,窗口会被阻止! ;)