Javascript Google标记管理器和$(JQuery)未定义
我正在使用谷歌标签管理器。如果我点击Javascript Google标记管理器和$(JQuery)未定义,javascript,jquery,Javascript,Jquery,我正在使用谷歌标签管理器。如果我点击F12并输入jQuery,jQuery将被定义并工作。但是,$不是。标记管理器似乎正在重新定义$ 有什么想法吗 下面是一个简化的示例 <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <!-- Google Tag Manager
F12
并输入jQuery
,jQuery将被定义并工作。但是,$
不是。标记管理器似乎正在重新定义$
有什么想法吗
下面是一个简化的示例
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- Google Tag Manager -->
<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', 'GTM-ABCDEFG');
</script>
<!-- END OF Google Tag Manager script -->
<title></title>
</head>
<body>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-ABCDEFG"></iframe></noscript>
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
</body>
</html>
(功能(w、d、s、l、i){
w[l]=w[l]|【】;w[l]。推({
“gtm.启动”:
新建日期().getTime(),事件:“gtm.js”
});var f=d.getElementsByTagName[0],
j=d.createElement,dl=l!=“数据层”?“&l=”+l:”;j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(窗口、文档、“脚本”、“数据层”、“GTM-ABCDEFG”);
导入顺序计数,因为脚本在加载
元素后立即运行
一种解决方案是将gtm
脚本从头部移动到Jquery之后
第二种解决方案是向gmt
脚本添加defer
属性。延迟将强制脚本在开始执行之前等待页面加载