繁体   English   中英

如何在 js 中不触发 onclick 的情况下单击 HTML 元素?

[英]How do you click on an HTML element without triggering onclick in js?

我在我的网站上使用 Google Analytics。 由于它是手工制作的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 触发点击?

如果您所有的 eventListeners 都是手动编码的并且易于访问,我相信您可以让它们监听不同的事件。 因此,您可以将这些从监听点击事件切换,并让您的自定义 function 触发不同的事件,例如。

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM