在GTM中用Java脚本替换html内容

Replace html content with Javascript in GTM(在GTM中用Java脚本替换html内容)
本文介绍了在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内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)