javascript - 将变量作为字符串参数传递给 gaq.push

标签 javascript function parameters google-analytics

我正在使用以下代码向导航菜单链接添加 Google Analytics 跟踪事件:

(function ($) {
    "use strict";
    $(function () {
        $("body").on('click', '.menu-item a', function () {
            var trackingCode = $(this).next(".ga-tracking");
            if (trackingCode.length > 0) {
                var t1 = trackingCode.data("tracking-1"),
                    t2 = trackingCode.data("tracking-2"),
                    t3 = trackingCode.data("tracking-3"),
                    t4 = trackingCode.data("tracking-4"),
                    params = "'" + t1 + "','" + t2 + "','" + t3 + "'";
                _gaq.push([params]);
            }

        });
    });
}(jQuery));

你可以看到它在这里工作:http://paulwp.com/blog/ 要触发代码,请单击顶部黑色栏中的博客链接。

这是我得到的错误:

_gaq.push processing "'_trackEvent','Store_Outbound','Link_Click'" for args: "[]":  

Called method "'_trackEvent','Store_Outbound','Link_Click'" threw exception.TypeError: Cannot call method 'apply' of undefined 

而它应该给出这样的东西:

_gaq.push processing "_trackEvent" for args: "[Store_Outbound,Link_Click]":  

我猜这是我使用导致问题的变量构建参数的方式

最佳答案

您传递的值有误。这实际上就是您正在做的事情:

_gaq.push(["a,b,c"]);

这是一个只有一个元素的数组。

它应该是这样的:

_gaq.push(["a","b","c"]);

这是一个包含多个元素的数组。

所以基本上你需要做

params = [t1,t2,t3];
_gaq.push(params);

或者直接将它们放入:

_gaq.push([t1,t2,t3]);

关于javascript - 将变量作为字符串参数传递给 gaq.push,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14777360/

相关文章:

c++ - 在 vector 练习中为体系结构x86_64编译C++不明符号

java - 函数名称匹配但参数不同

javascript - 插入行不是函数

javascript - Safari浏览器崩溃,当使用jquery代码网站重新聚焦并再次聚焦时

actionscript-3 - 线性处理函数序列(as3)

Oracle:显示错误参数

arrays - 如何只允许一定长度的数组参数

bash - 之前有bash参数时getopts不起作用

javascript - 如何过滤掉非数字值

javascript - 我有一个未捕获的语法错误 : Unexpected token : on a getJSON call. 为什么?