javascript - 动态改变<script>标签src

标签 javascript google-analytics

动态改变src标签

我正在将 Google 分析集成到我的 Angular 应用程序中。它需要在 script-src 及更高版本中添加 google tracking 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,然后创建<script>标签。

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

关于javascript - 动态改变&lt;script&gt;标签src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58156306/

相关文章:

php - 使用带有 PHP 的 Google Analytics 按页面获取独特的观众

javascript - JavaScript 中全局作用域中存在 undefined variable 的原因是什么?

javascript - 为什么以编程方式添加 Angular Directive(指令)时不起作用

javascript - 使用 javascript 动态插入图像

Javascript - 使用输入值创建数组

web - Google 网站管理员工具中的重复域及其对 Analytics 的影响

javascript - 变量值从 Jsp 到 Javascript 的传递

android - 我们如何从谷歌分析屏幕 View 列表中删除特定的屏幕 View ?

java - Android 推荐跟踪不适用于 Google Play

php - Google Analytics Variant测试不同的CSS文件