JS:如何防止.addEventListener方法覆盖网站上的所有其他功能?

时间:2020-02-19 00:54:10

标签: javascript google-tag-manager wixcode

预期行为:

我需要向WIX网站添加更多功能,为此,我在Google跟踪代码管理器中编写了一个脚本,该脚本应该侦听网站正文中的所有点击,并在点击ID时触发功能对象与ID模式匹配。

儿童车行为

我希望做到这一点,而又不会干扰网站的其他功能。但是,我这样做的方式在网站上的点击事件上会互相影响。突然弹出窗口将无法打开,并且其他任何依赖于点击的操作都将无法正常工作。

参考

我的代码基于这样的问题:https://stackoverflow.com/a/43682148/3624321

源代码

<script>
  regx_arr = [ 
    "comp-jb3n1k1x",
    "comp-k5qwdzsj",
    "comp-k6mr92fc",
    "comp-k3hje3sm",
    "comp-k3hgkmri",
    "comp-k52ymtgi",
    "comp-k16lizex",
    "comp-k16lizj3",
  ];

  var parent = document.querySelector('body');

  var addEventForChild = function(parent, eventName, childSelector, fn){
    parent.addEventListener(eventName, function(event){
      var clickedElement = event.target;
      fn(clickedElement);
      event.stopPropagation();
    });
  };

  function checker(id) {
    for (var i = 0; i < regx_arr.length; i++) {
      if (id.includes(regx_arr[i])) {
        return regx_arr[i];
      }
    }
  }
  function myFunction(childElement){
    id = childElement.id;
    reg_id = checker(id);

    if (reg_id) {
      console.log("Regex ID", reg_id);
    }
  }

  addEventForChild(parent, 'click', '.child', myFunction);
</script>

0 个答案:

没有答案