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内容


- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Fetch API 如何获取响应体? 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 失败的 Canvas 360 jquery 插件 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 400或500级别的HTTP响应 2022-01-01