我正在使用react-gtm-module编写动态生成的数据层以响应自定义 HTML 标记。我有一个问题,有时 CustomHTML 标记会成功触发,并且会生成 dataLayer,但该<script type='application/ld+json'>元素缺少模板化的 dataLayer 变量。
它发生在开发和生产环境中,因此它不能与 webpack 相关。有时 gtm 调试器在失败的情况下显示带有空字段的标记,有时它显示填充在标记中的字段,即使写入的元素本身没有。
这是 CustomHTML 标记中的编写脚本:
var script = document.createElement('script');
script.type = 'application/ld+json';
script.innerHTML = JSON.stringify(data);
document.getElementsByTagName('head')[0].appendChild(script);
})(document);
下面是两个本质上等价的例子:
https://iiif.cloud/view/afa9ee3c-a7ed-5875-a009-2de3940ebff3
标签被写入application/ld+json元素。
和这里:
https://iiif.cloud/view/7145e94f-6a10-5bb6-a360-6915ee9b0795
不在的地方。任何有关进一步调试的建议将不胜感激。