Javascript 动态更改标记src

Javascript 动态更改标记src,javascript,google-analytics,Javascript,Google Analytics,动态更改src标记 我正在将谷歌分析集成到我的Angular应用程序中。它需要在脚本src和更高版本中添加google跟踪id。它需要先加载,然后再进行其他操作 虽然它对一个环境很好,但我希望对不同的环境有不同的ID 我正在尝试类似于: <script> var googleTrackingId; switch (window.location.hostname) { case 'mycompany.com': goog

动态更改src标记

我正在将谷歌分析集成到我的Angular应用程序中。它需要在脚本src和更高版本中添加google跟踪id。它需要先加载,然后再进行其他操作

虽然它对一个环境很好,但我希望对不同的环境有不同的ID

我正在尝试类似于:

<script>
    var googleTrackingId;
      switch (window.location.hostname) {
          case 'mycompany.com':
            googleTrackingId = 'UA-123123-3'; // production
              break;
          case 'staging.mycompany.com':
            googleTrackingId = 'UA-123123-2'; // staging
              break;
          default:
            googleTrackingId = 'UA-123123-1'; // localhost
      }
  </script>
  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=${googleTrackingId}"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', googleTrackingId);
  </script>

但是src标记没有改变。

您可以首先根据主机名找到所需的跟踪ID,然后创建标记


您可以首先根据主机名找到所需的跟踪ID,然后创建标记


使用Javascript,您可以通过ID获取元素,并向元素的src属性附加任何您想要的内容

编辑:加载脚本元素时,可以使用脚本的onload事件处理程序立即更改脚本元素:

var analyticsScript=document.getElementById'analytics'; analyticsScript.onload=函数{ analyticsScript.src+='?id=3wrwerf45r3t36y645y4'; console.loganalyticsScript.src; }
使用Javascript,您可以通过ID获取元素,并向元素的src属性附加任何您想要的内容

编辑:加载脚本元素时,可以使用脚本的onload事件处理程序立即更改脚本元素:

var analyticsScript=document.getElementById'analytics'; analyticsScript.onload=函数{ analyticsScript.src+='?id=3wrwerf45r3t36y645y4'; console.loganalyticsScript.src; }
<script>

    var googleTrackingId;
      switch (window.location.hostname) {
          case 'mycompany.com':
            googleTrackingId = 'UA-123123-3'; // production
              break;
          case 'staging.mycompany.com':
            googleTrackingId = 'UA-123123-2'; // staging
              break;
          default:
            googleTrackingId = 'UA-123123-1'; // localhost
      }

      document.write( '<scr' + 'ipt async src="https://www.googletagmanager.com/gtag/js?id=' + googleTrackingId + '"></scr' + 'ipt>' );

  </script>

  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', googleTrackingId);
  </script>