Piwik跟踪器允许这样的自定义跟踪:
jQuery('div.orange').click(function() {
piwikTracker.trackGoal(3); // Track click on this hitarea
});
在我的WordPress环境中,出于明显的原因,我将这个jQuery加载到一个独立于piwik.js脚本的脚本中。
在Chrome中,我收到错误
未定义的ReferenceError: piwikTracker未定义
在我使用自定义跟踪的脚本上。
在调用事件处理程序函数之前,我可以定义函数吗?为什么只有Chrome?
编辑
我检查了加载JavaScript的piwik脚本,它实际上是在页脚中加载脚本。调用自定义跟踪的函数加载在标头中。这有关系吗?页眉中的脚本总是在页脚之前加载吗?
发布于 2013-02-25 06:55:37
异步跟踪以一种优雅的方式解决了这个问题:
var _paq = _paq || [];
_paq.push(['trackGoal', 3]);
如果之前加载了piwik,这将自动发送目标请求。如果piwik是在它之后加载的,那么它只是一个数组,一旦piwik被加载,它就会被处理!
参见文档关于如何设置异步跟踪,它将是Piwik1.11的默认方法。
发布于 2012-06-28 10:59:02
是。你把脚本放在页面上的位置很重要。认为,当浏览器解释页面时,它将首先读取头部,然后读取主体。对于您的情况,最好先检查DOMReady和对象piwikTracker。
jQuery(document).ready(function() {
jQuery('div.orange').click(function() {
if (piwikTracker) {
piwikTracker.trackGoal(3); // Track click on this hitarea
}
});
});
发布于 2012-06-28 10:49:23
尝试将代码放入ready
处理程序中:
$(function(){
jQuery('div.orange').click(function() {
piwikTracker.trackGoal(3); // Track click on this hitarea
});
});
或onload
事件,无论哪个工作:
window.onload = function() {
jQuery('div.orange').click(function() {
piwikTracker.trackGoal(3); // Track click on this hitarea
});
}
https://stackoverflow.com/questions/11249991
复制相似问题