Подключение Javascript Onload для конкретного файла JS - PullRequest
0 голосов
/ 06 марта 2019

После большого количества устранения неполадок я обнаружил, что мои 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 Ответ

2 голосов
/ 06 марта 2019

Вы на правильном пути, кажется, ваше событие не запускается, потому что у вас есть некоторые проблемы с порядком загрузки (то есть событие запускается до того, как вы зарегистрируете обработчик).Следующее должно охватывать этот случай.Единственное требование заключается в том, что сам тег сценария вставляется до того, как 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>
...