首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >未定义的ReferenceError: piwikTracker未定义

未定义的ReferenceError: piwikTracker未定义
EN

Stack Overflow用户
提问于 2012-06-28 09:35:54
回答 3查看 3.6K关注 0票数 2

Piwik跟踪器允许这样的自定义跟踪:

代码语言:javascript
运行
AI代码解释
复制
jQuery('div.orange').click(function() {
    piwikTracker.trackGoal(3); // Track click on this hitarea
});

在我的WordPress环境中,出于明显的原因,我将这个jQuery加载到一个独立于piwik.js脚本的脚本中。

在Chrome中,我收到错误

未定义的ReferenceError: piwikTracker未定义

在我使用自定义跟踪的脚本上。

在调用事件处理程序函数之前,我可以定义函数吗?为什么只有Chrome?

编辑

我检查了加载JavaScript的piwik脚本,它实际上是在页脚中加载脚本。调用自定义跟踪的函数加载在标头中。这有关系吗?页眉中的脚本总是在页脚之前加载吗?

EN

回答 3

Stack Overflow用户

发布于 2013-02-25 06:55:37

异步跟踪以一种优雅的方式解决了这个问题:

代码语言:javascript
运行
AI代码解释
复制
var _paq = _paq || [];
_paq.push(['trackGoal', 3]);

如果之前加载了piwik,这将自动发送目标请求。如果piwik是在它之后加载的,那么它只是一个数组,一旦piwik被加载,它就会被处理!

参见文档关于如何设置异步跟踪,它将是Piwik1.11的默认方法。

票数 6
EN

Stack Overflow用户

发布于 2012-06-28 10:59:02

是。你把脚本放在页面上的位置很重要。认为,当浏览器解释页面时,它将首先读取头部,然后读取主体。对于您的情况,最好先检查DOMReady和对象piwikTracker。

代码语言:javascript
运行
AI代码解释
复制
jQuery(document).ready(function() {
    jQuery('div.orange').click(function() {
        if (piwikTracker) {
            piwikTracker.trackGoal(3); // Track click on this hitarea
        }
    });
});
票数 3
EN

Stack Overflow用户

发布于 2012-06-28 10:49:23

尝试将代码放入ready处理程序中:

代码语言:javascript
运行
AI代码解释
复制
$(function(){
  jQuery('div.orange').click(function() {
    piwikTracker.trackGoal(3); // Track click on this hitarea
  });
});

onload事件,无论哪个工作:

代码语言:javascript
运行
AI代码解释
复制
window.onload = function() {
  jQuery('div.orange').click(function() {
     piwikTracker.trackGoal(3); // Track click on this hitarea
  });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11249991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文