Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Piwik如何跟踪链接点击事件?_Javascript_Matomo - Fatal编程技术网

Javascript Piwik如何跟踪链接点击事件?

Javascript Piwik如何跟踪链接点击事件?,javascript,matomo,Javascript,Matomo,我个人不使用Piwik。我开发了一个JavaScript工具/库,用于在SharePoint中创建菜单系统,有人使用我的库询问是否要合并Piwik 从我读到的内容中,我可以看到Piwik捕捉/跟踪单击事件。我怀疑默认情况下,对于具有href属性的标记,它会这样做 我的JS库使用onclick事件创建元素。我已经阅读并理解,我可以使用Piwik的trackLink功能手动触发点击事件。我想避免这样做有很多原因 所以我想看看Piwik是如何准确跟踪点击事件的,这样我就可以找出如何以更一般的方式将其合

我个人不使用Piwik。我开发了一个JavaScript工具/库,用于在SharePoint中创建菜单系统,有人使用我的库询问是否要合并Piwik

从我读到的内容中,我可以看到Piwik捕捉/跟踪
单击
事件。我怀疑默认情况下,对于具有
href
属性的
标记,它会这样做

我的JS库使用
onclick
事件创建
元素。我已经阅读并理解,我可以使用Piwik的
trackLink
功能手动触发点击事件。我想避免这样做有很多原因

所以我想看看Piwik是如何准确跟踪点击事件的,这样我就可以找出如何以更一般的方式将其合并。我想也许我可以通过创建一个
元素并执行它的
click
事件来让我的
onclick
事件伪造一些东西,但不确定这是否有效。

看看Piwik的

例如:

  • 默认行为是使用实际的单击事件。但是,某些浏览器(如Firefox、Opera和Konqueror)不会为鼠标中键生成单击事件

    为了捕获更多的“点击”,伪点击处理程序使用mousedown+mouseup事件。这不是行业标准,容易出现误报(如拖动事件)


在这位女士看来,您非常接近解决方案。 Matomo(Piwik)包含Javascript
trackEvent(类别、动作、[name]、[value])
。使用onclick事件和
\u paq.push(['trackEvent','event Category','event Action','event Name'))
您可以使用它


通过代码片段和屏幕截图查看此解决方案:

问题是我认为
enableLinkTracking()
仅适用于加载Piwik时存在的链接。如何让它跟踪加载Piwik后动态创建的链接?我尝试了
\u-paq(['trackEvent',url',link'])但这不起作用。当您有足够的代表时,您应该将此答案作为注释添加到答案中。欢迎来到SO。谢谢你的回复。请完成本次旅行并享受其中;-)
    function addClickListener(element, enable) {
        addEventListener(element, 'click', clickHandler(enable), false);

        if (enable) {
            addEventListener(element, 'mouseup', clickHandler(enable), false);
            addEventListener(element, 'mousedown', clickHandler(enable), false);
            addEventListener(element, 'contextmenu', clickHandler(enable), false);
        }
    }