将Javascript Onload连接到特定的JS文件

时间:2019-03-06 10:01:54

标签: javascript asynchronous google-analytics shopify onload

经过大量故障排除后,我发现我的ga()命令在将Google Analytics(分析)加载到Shopify存储之前正在运行时失败。我找到了一个示例代码段,该代码段应该将命令延迟到GA加载完成,但它使用的是我的网站未使用的JQuery。

<script>
  $(window).ready(function() {
    $('head script[async][src*="analytics"]').on('load', function() {
      ga('set', 'dimension1', 'insert_value');
      ga('set', 'dimension2', 'insert_value');
      ga('set', 'dimension3', 'insert_value');
    });
  });
</script>

我正在研究如何将其转换为纯Javascript,我想我可以使用addEventListener()来等到它加载而不是正数。应该使用什么函数来挂载另一个Javascript文件?

1 个答案:

答案 0 :(得分:2)

您处在正确的轨道上,我想您的事件似乎未触发,因为您的加载顺序存在一些问题(即在注册处理程序之前触发了事件)。以下内容应涵盖该情况。唯一的要求是在触发DOMContentLoaded之前插入script标签本身。

document.addEventListener("DOMContentLoaded", function() {
  const loaded = function() {
    console.log("Script loaded");
  }
  if (ga !== undefined) {
   loaded()
  } else {
   document.querySelector('script[async][src*="analytics"]').addEventListener("load", loaded);
  }
});
<script src="https://www.google-analytics.com/analytics.js" async="true"></script>