我在我的网站上实施了GTM。我想知道是否可以在DOM的特定位置添加自定义HTML / JS。
这是我在页面中插入的内容:
<div class="myClass">
<p>foo</p>
<script>
dataLayer.push({'event':'myEvent'})
</script>
</div>
在GTM上我用这个html设置了一个标签:
<div class="test">this is a test</div>
<iframe src="www.foo.com" />
在myEvent
上触发。
不幸的是,这不能正常工作,我的标签插在我的网页底部而不是myClass
div内。
我做错了什么或GTM不允许这样做?
感谢。
答案 0 :(得分:1)
&#34;不允许&#34;可能有点强(你可以看到它在某种程度上有效),但通常不推荐改变页面视觉方面的标签。
如果要在特定位置插入HTML,最好通过javascript动态创建元素并将其附加到现有元素,因此HTML标记看起来像(未经测试):
<script>
var myDiv = document.createElement('div');
myDiv.setAttribute('class','test');
var container = document.querySelector('.myClass');
container.append(myDiv);
</script>
您需要确保附加的元素是唯一的(如果可能,请添加id而不是类名)。标签是异步执行的,因此很难说在加载过程的哪一点上附加了HTML(这将导致DOM中的重排,这对客户来说是一项昂贵的操作,所以你不想经常这样做。)