单页网站

有问题的网站是http://getstefan.com

它是一个单一页面组合网站,我曾尝试使用jQuery将Google Analytics点击跟踪添加到网站上的每个定位标记,希望能够跟踪用户点击的位置。 有一个脚本为页面上的每个定位点添加了一个唯一的ID,因此我设置了一个超时以确保在分配id后分配Google Analytics点击跟踪。 像这样:

jQuery(window).load(function(){
        setTimeout(loadOnClick,8000)
    });

    function loadOnClick() {
        jQuery('a').each(function(){
            jQuery(this).attr("onclick", "_gaq.push(['_trackEvent', 'anchor', 'click', '" + jQuery(this).attr('id') + "']);" );
        });
    }

这导致建立如下链接:

<a href="http://getstefan.com/wp-content/themes/inc v2/downloads/CV-StefanHinck-FR.pdf" id="cv" onclick="_gaq.push(['_trackEvent', 'anchor', 'click', 'cv']);"></a>

一切看起来不错。 问题是,当我查看我的分析时,只有已注册的点击被标记为“未命名”

任何人都知道我在这里做错了什么?


首先您的锚点没有分配ID,因此代码正在执行的操作应该是将“未定义”报告为不存在的值。 例如

<a class="entry-link" href="http://getstefan.com/portfolio/interior-design-logo/"></a>

其次 ,不要使用计时器。

jQuery(window).load(function(){
        setTimeout(loadOnClick,8000)
    });

应该被替换

jQuery(document).ready(function(){
        loadOnClick();
    });

所以您不必等待8秒,并且可以在DOM准备好时分配所有内容。


我可以建议一个更紧凑的版本?

另外,这并不涉及锚的id ,它使用href ,可能适用于基本的场景(例如,如果两个链接将用户指向同一个URL,则不知道哪个链接提供了多少次访问)如果你确实添加了id到你的锚,只需用.attr('id')替换.attr('href') .attr('id')

jQuery(document).ready(function() {
    jQuery('a').click(function() {
        _gaq.push(['_trackEvent', 'anchor', 'click', jQuery(this).attr('href')]);
    });
});  

除了@Bakak Naffas的好帖子,请记住_gaq.push调用会启动一个HTTP请求。

如果您的服务器速度很快,那么在Google Analytics调用之前,用户点击的链接完全可能会被加载,在这种情况下,无法跟踪任何内容。

链接地址: http://www.djcxy.com/p/71673.html

上一篇: Single Page Site

下一篇: redirect to URL with HTML anchor