我在我的网站上使用谷歌分析。 因为它是手工制作的HTML,而且当我安装它的时候它已经很大了,所以我并不是所有的页面都有它。 网站太大了,不需要进行任何逐页工作。
我已经编写了一些代码来防止默认的单击操作(因此GA可以触发),记录GA事件,然后再次单击它。 我一直在使用以下代码:
function trackClick(event) {
event.preventDefault();
console.log("clicked_on_"+String(this.myelem.href || this.myelem.onclick)+"_from_"+window.location.href);
setTimeout(function(elemmy){
elemmy.click();
}, 300, this.myelem);
gtag("event", "clicked_on_"+String(this.myelem.href || this.myelem.onclick)+"_from_"+window.location.href);
}
var atags = document.getElementsByTagName("a");
for (var i = 0; i < atags.length; i++) {
atags[i].addEventListener("click", trackClick.bind({myelem: atags[i]}));
}
问题是,我一点击它,它就触发了一个无限循环。 如何用JS触发点击,而不触发特定的事件处理程序?
如果所有的EventListener都是手工编码的,而且很容易访问,我相信您可以让它们监听不同的事件。 因此,您可以切换这些从侦听一个单击事件,并让您的自定义函数触发一个不同的事件,如。
https://developer.mozilla.org/en-us/docs/web/guide/events/creating_and_triggering_events