是否可以在 GTM 自定义模板中获取 DOM 元素?

Is it possible to get a DOM element in GTM custom template?

描述

所以我已经通读了GTM Custom template APIs;但我没有找到任何有关获取(例如)div 元素的信息。我试过使用 copyFromWindow() 从 window 复制文档或通过 callInWindow() 调用 document.getElementById,但是这两次,当我将文档添加到权限时,我总是收到此错误消息:

The value must not start with any key predefined on global scope (i.e. in Window), or any JavaScript keywords.

问题

是否可以通过自定义 GTM 标签调用 DOM 元素? 我的目标是创建一个可以在选定的 div 元素中插入视频的标签。我可以通过创建自定义 HTML 标签来做到这一点,但我不希望我们的营销人员总是检查代码。因此,向他询问目标 ID 和视频的标签 url 可能会更容易

没有。阻止对 DOM 的访问(并控制对全局命名空间的访问)几乎是沙盒 Javascript 的要点。由于 GTM 不应干扰 DOM,因此这通常不会成为问题(嗯,至少 Google 是这么认为的)。

如果您需要了解 DOM 对象的某些 属性,您可以通过 DOM 输入变量并通过创建接受变量的字段将其作为数据项传递。

Simo 在他的初始 write-up on custom templates 中对此有一些介绍(您必须向下滚动很多)。虽然 Google 从那以后添加了一些 API,但我怀疑 DOM API 是否会出现,因为这将与沙盒 [=25] 的目的背道而驰=].