Así que leí las API de plantillas personalizadas de GTM ; pero no encuentro nada con respecto a obtener (por ejemplo) un elemento div. Intenté copiar el documento desde la ventana usando copyFromWindow() o llamando a document.getElementById a través callInWindow() , pero en ambas ocasiones, siempre recibo este mensaje de error cuando agrego el documento a los permisos:
El valor no debe comenzar con ninguna clave predefinida en el ámbito global (es decir, en la ventana) ni con ninguna palabra clave de JavaScript.
¿Existe de todos modos que sea posible llamar a un elemento DOM a través de etiquetas GTM personalizadas? Mi objetivo es crear una etiqueta que pueda inyectar videos en elementos div seleccionados. Podría hacer esto creando una etiqueta HTML personalizada, pero no quiero que nuestro encargado de marketing revise siempre el código. Entonces, una etiqueta que le pida la ID de destino y la URL del video podría facilitarlo.
No. Evitar el acceso al DOM (y controlar el acceso al espacio de nombres global) es prácticamente el objetivo de Javascript en espacio aislado. Dado que se supone que GTM no interfiere con el DOM, esto no debería ser un problema (bueno, eso es lo que piensa Google al menos).
Si necesita conocer alguna propiedad de un objeto DOM, puede obtenerla (es decir, la propiedad, no el objeto en sí) a través de una variable de tipo DOM y pasarla como elemento de datos creando un campo que acepte variables.
Simo tiene un poco sobre esto en su artículo inicial sobre plantillas personalizadas (tiene que desplazarse un poco hacia abajo). Si bien Google ha agregado una serie de API desde entonces, dudo que esté surgiendo una API DOM, porque eso desafiaría el propósito de Javascript en espacio aislado.