为特定的JS文件挂钩Javascript Onload

问题描述 投票:0回答:1

经过大量的故障排除后,我发现我的ga()命令在我的Shopify商店中加载Google Analytics之前运行失败。我找到了一个示例代码片段,据说在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文件?

javascript asynchronous google-analytics shopify onload
1个回答
2
投票

你是在正确的轨道上,我想你的事件似乎没有被解雇,因为你有一些加载顺序的问题(即在你注册处理程序之前被触发的事件)。以下内容应涵盖该案例。唯一的要求是在触发DOMContentLoaded之前插入脚本标记本身。

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>
© www.soinside.com 2019 - 2024. All rights reserved.