Setelah banyak pemecahan masalah, saya menemukan bahwa perintah ga() saya gagal saat dijalankan sebelum Google Analytics dimuat di toko Shopify saya. Saya menemukan cuplikan kode sampel yang seharusnya menunda perintah hingga GA dimuat, tetapi menggunakan JQuery yang tidak digunakan situs saya.

<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>

Saya sedang mencari cara mengonversi ini menjadi Javascript murni, dan saya pikir saya mungkin dapat menggunakan addEventListener() untuk menunggu hingga dimuat tetapi tidak positif. Fungsi apa yang harus digunakan untuk menghubungkan pemuatan file Javascript lain?

0
Aidan Knight 6 Maret 2019, 13:01

1 menjawab

Jawaban Terbaik

Anda berada di jalur yang benar, saya kira sepertinya acara Anda tidak dipecat karena Anda memiliki beberapa masalah dengan urutan pemuatan (yaitu acara dipecat sebelum Anda mendaftarkan pawang). Berikut ini harus mencakup kasus itu. Satu-satunya persyaratan adalah bahwa tag skrip itu sendiri dimasukkan sebelum DOMContentLoaded diaktifkan.

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>
2
Daniel Klischies 6 Maret 2019, 10:35