尝试使用 Google Analytics 4 函数创建 document.createElement('script')

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

我正在将我的网站转移到 GoogleAnalytics 4,我需要将以下脚本添加到页面中。如果单击接受 cookies 按钮,我将使用 JS 将其添加到头部。

Google 给我的 HTML

<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer', {GA-ID});</script>

我创建了一个脚本标签,并尝试在脚本标签之间插入函数,但这不起作用,我应该/可以在脚本标签之间添加函数的不同方式吗?

const gtagManager = document.createElement('script')

      gtagManager.onload = () => {
        (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f)
        })(window,document,'script','dataLayer', {GA-ID})
      }

document.head.appendChild(gtagManager)
javascript cookies google-analytics google-analytics-4 createelement
2个回答
0
投票
(function(){const z=!!window.DlocalGo,s=z?document.querySelector('script[src="https://static.dlocalgo.com/dlocalgo.min.js"]'):document. createElement("script");z||(s.src="https://static.dlocalgo.com/dlocalgo.min.js",s.async=!0,document.body.appendChild(s)); s.addEventListener("加载",()=>{const e=document.querySelector('script[data-reference-id="6db46dbc-5931-4de5-bb86-210f8344c721"]'),t=e.parentNode, n="dp-btn-6db46dbc-5931-4de5-bb86-210f8344c721",c=document.createElement("div");c.id=n,t.insertBefore(c,e);new DlocalGo("LxImmgKhYQygzDMpbLIVzMiCQeLECZgD" ).createCheckout(n,{subType:"BUTTON",国家:"MX",货币:"MXN",金额:"1000000",lang:"",text:"Tarjeta de regalo playa store"})}); })()

-1
投票
<script>
(function (w, d, s, l, i) {
  w[l] = w[l] || [];
  w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" });
  var f = d.getElementsByTagName(s)[0],
    j = d.createElement(s),
    dl = l != "dataLayer" ? "&l=" + l : "";
  j.async = true;
  j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
  j.onload = function(){ // execute your code here }
  f.parentNode.insertBefore(j, f);
})(window, document, "script", "dataLayer", "G-123456789");
</script>

我曾经在脚本中插入onload函数。您可以自行尝试是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.