Replace html content with Javascript in GTM(在GTM中用Java脚本替换html内容)
问题描述
如果Google Tag Manager中的类"Availability Stati13",正在尝试将"sofort lieferbar"替换为"Lieferung auf Bestellung"。
<div class="availability stati13" style="">
sofort lieferbar
<div class="blueinfo">
<div style="display: none; opacity: 1;">in den nächsten Tagen Versandbereit</div>
</div>
</div>
Java脚本本身运行良好,但在GTM中,如果使用自定义的html标记激发,则不会发生任何情况。 数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
<script type="text/javascript">
function myFunction() {
var str = document.querySelector(".availability.stati13").innerHTML;
var res = str.replace("sofort lieferbar", "Lieferung auf Bestellung");
document.querySelector(".availability.stati13").innerHTML = res;
}
</script>
有人知道为什么GTM中的此脚本不起作用吗?
GTM运行良好,我尝试了这个:
document.body.innerHTML = document.body.innerHTML.replace(/hello/g, 'hi');
这是可行的,但我无法创建If类要求
推荐答案
您定义了一个函数myFunction()
,但您在哪里执行它?
也许您应该将其编写为自动执行函数:
(function(){
// your code here ...
})();
还要确保在准备好的DOM上执行此标记(以便您的代码能够找到您要查找的元素)
dom-ready-trigger-in-google-tag-manager-quick-guide/
document.querySelector(".availability.stati13")
行将仅返回第一个元素!。如果此类有多个DOM元素,则必须使用querySelectorAll
为所有这些元素处理此问题。
var elements = document.querySelectorAll(".availability.stati13");
for (i = 0; i < elements.length; ++i) {
var str = elements[i].innerHTML;
elements[i].innerHTML = str.replace("sofort lieferbar", "Lieferung auf Bestellung");
}
我使用for
而不是forEach
以获得最大的兼容性。
这篇关于在GTM中用Java脚本替换html内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在GTM中用Java脚本替换html内容
基础教程推荐
- 在for循环中使用setTimeout 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 动态更新多个选择框 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01