Google分析邮件跟踪

时间:2012-06-14 18:31:20

标签: jquery google-analytics

我一直在使用这个谷歌分析代码来跟踪mailto链接,但它根本无法正常工作。我觉得它很简单(某个地方或某个地方缺少一个支架),但我已经尝试了几件事而且无法理解。有什么建议吗?

<script type="text/javascript">

$(document).ready(function(){

    $('a').mouseup(function(){
        href = $(this).attr('href');
        if (href !== null) {            
            href_lower = href.toLowerCase();
            if(href_lower.substr(-3) == "pdf" || href_lower.substr(-3) == "xls" || href_lower.substr(-3) == "doc" ||
               href_lower.substr(-3) == "mp3" || href_lower.substr(-3) == "mp4" || href_lower.substr(-3) == "flv" ||
               href_lower.substr(-3) == "txt" || href_lower.substr(-3) == "csv" || href_lower.substr(-3) == "zip") {
                _gaq.push(['_trackEvent', 'Downloads', href_lower.substr(-3), href]);
            }
        }
        else if (href_lower.substr(0, 4) == "http") {
            var domain = document.domain.replace("www.",'');
                if(href_lower.indexOf(domain) == -1){
                    href = href.replace("http://",'');
                    href = href.replace("https://",'');
                    _gaq.push(['_trackEvent', 'Outbound Traffic', href]);
                }  else if (href && href.match(/^mailto\:/i)) {
                    jQuery(this).click(function() {
                    var mailLink = href.replace(/^mailto\:/i, '');
                    _gaq.push(['_trackEvent', 'Email', 'Click', mailLink]);
                    });
                }
            }
        }
    )
});

2 个答案:

答案 0 :(得分:2)

您正在中寻找“mailto:”,如果是以“http”开头的链接。整个if-else-if应该用“mailto:”作为“第一类”条件重写,而不是“http:”的子条件。

答案 1 :(得分:0)

这部分代码

else if (href_lower.substr(0, 4) == "http")

只有当这是真的时,mailto条件才有机会运行但是当这是真的时,mailto条件将始终为false,因为mailto语法不以“http”开头

<a href="mailto:someone@example.com">Send email</a>

我认为你可能会做类似

的事情
if(href !== null) { // ....}
else {
    if(href_lower.indexOf('mailto:') !== -1) { // mailto code }
    else { other than mailto code }
}