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内容
基础教程推荐
- HTML5 画布调整为父级 2022-01-01
- CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符 2022-01-01
- 从快速中间件中排除路由 2022-01-01
- 带角度的选项卡:仅使用 $http 在单击时加载选项卡 2022-01-01
- 逻辑运算符 ||在 javascript 中,0 代表 Boolean false? 2022-01-01
- 在 Javascript 中使用 Fetch API 上传文件并显示进度 2022-01-01
- 最佳动态 JavaScript/JQuery 网格 2022-01-01
- 使用 jQuery 在悬停时交换 DIV 类 2022-01-01
- 当木偶师打开Chrome时,不能使用Chrome扩展 2022-01-01
- 即使每次插入第一个输入的值不同,第二个输入仍显示相同的输入值 2022-01-01
