【问题标题】:Invalid HTML error in google tag manager谷歌标签管理器中的无效 HTML 错误
【发布时间】:2017-03-10 18:12:53
【问题描述】:

我正在为我的网站试用 Google Tag Manager,并将我的标签添加到工作区并点击发布。但是我的 jQuery 标签(3.1.1,苗条/缩小)出现错误。这样的东西不应该与谷歌标签管理器一起使用吗?

编辑:我使用了自定义 HTML 标记

我添加的标签:

<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha256-/SIrNqv8h6QGKDuNoLGA4iret+kyesCkHGzVUUV0shc=" crossorigin="anonymous"></script>

截图:

提前致谢, 迭戈

【问题讨论】:

  • Google 跟踪代码管理器不支持子资源完整性属性。我刚在这里读到,完全不受支持,我不知道它的基础:noisetosignal.io/2016/02/…

标签: google-tag-manager


【解决方案1】:

作为一种解决方法,似乎可以在自定义 HTML 标记中附加带有属性的脚本:

<script>
  (function() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://code.jquery.com/jquery-3.1.1.slim.min.js';  
  script.setAttribute('integrity','sha256-/SIrNqv8h6QGKDuNoLGA4iret+kyesCkHGzVUUV0shc=');
  script.setAttribute('crossorigin','anonymous');
  document.getElementsByTagName('head')[0].appendChild(script);
  })();
</script>  

这似乎有点古怪(我认为 GTM 在任何情况下都会进行异步标签注入),但允许您设置包括完整性在内的属性而不会抱怨。我没有进行彻底的测试,我只是更改了哈希值以查看该属性是否符合预期,并收到一条消息说资源被阻止 - 所以这似乎有效。

【讨论】:

  • 这修复了标签管理器的错误,但我在控制台中收到了一个奇怪的错误:index.html:41 Uncaught ReferenceError: $ is not defined at index.html:41 $ 是文档就绪函数中的 jQuery 选择器。这可能是我的实现
  • 我没有收到那个错误,但是我没有对 jQuery 函数进行任何调用。当您将 jQuery 设置为“无冲突”模式时,通常会发生“$ 未定义”,这可能以某种方式包含在 CDN 托管文件中。
  • 可能是别的东西。如果有帮助,这里是pastebin
猜你喜欢
  • 2015-12-29
  • 2020-01-09
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
相关资源
最近更新 更多