我有一个问题,我插入到我在Wordpress中开发的网站中的GTM代码带来了jQuery库的v1.9.1,它与已经外部声明的jQuery的v1.11.3冲突。
导致此错误出现在控制台中:
Uncaught TypeError: $ is not a function
我很确定这个问题是jQuery脚本库中的冲突。显然错误是说JS应该注意使用简写方法声明jQuery。我已经做了常规并检查插件是否有冲突,但它绝对是GTM脚本。
jQuery v1.11.3库在<head>
中声明,GTM代码直接放在<body>
标记之后。
我做了一些研究,发现这些帖子支持我的调查:
jQuery being loaded into gtm.js from Google Tag Manager
这两个帖子都谈到了改变包含的jQuery库。我怎么做?我已被第三方提供GTM代码,无法访问其GA帐户。
此外,GTM是否必须依赖于jQuery。是否有“香草”版本?
答案 0 :(得分:1)
根据版权声明,GTM样板代码确实嵌入了jQuery 1.9.1版本。但是,这是一个在私有(-ish)函数内运行的自定义版本,并且不会声明全局“$”或“jQuery”变量。
(简短更新我参加了由Simo Ahava(他是GTM的Google开发人员专家)举办的研讨会,他说GTM不包含jQuery,但是GTM在其选择器引擎中使用了一些方法与jQuery方法非常相似,认为有必要包含版权声明)。
GTM容器中是否有营销标签?如果是这样,我建议使用Ghostery逐个关闭它们以查看错误是否消失(某些供应商不足以在其营销标签中包含脚本库)。
请注意,在您的链接问题“jQuery和Google跟踪代码管理器”中,jQuery CDN是在GTM中引用的 - 在这种情况下,它不是受干扰的jQuery的内置版本。