我正在使用以下代码向导航菜单链接添加 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/