Esta funcionalidad está dirigida a personas con experiencia en desarrollo. Si no se siente cómodo trabajando con el DOM o con la encapsulación de Shadow DOM, es buena idea acudir a un desarrollador o consultar recursos en línea sobre Web Components y los fundamentos del Shadow DOM.
Limitación de los selectores estándar
Los selectores CSS estándar o los métodos JavaScript comoquerySelector() o $() no funcionan en elementos que se encuentran dentro de un Shadow DOM. Estos elementos están ocultos de la página principal, lo que significa:
- No puede orientar elementos dentro de un Shadow DOM utilizando los métodos de selección habituales en el editor gráfico de Kameleoon.
- Orientar estos elementos mediante selectores CSS o de estilo jQuery tradicionales en su experimento puede fallar.
- Cualquier modificación (como cambios de texto, actualizaciones de estilo o inserción de contenido) puede no aplicarse a menos que se tomen pasos especiales para cruzar el límite del Shadow DOM.
Trabajar con Shadow DOM en el editor gráfico
En la mayoría de los casos, los usuarios pueden seleccionar elementos dentro de un shadow root directamente desde la zona de previsualización del editor gráfico de Kameleoon.Cuando aparece el campo adicional «Shadow root path»
En algunos casos, cuando intenta seleccionar o editar un elemento dentro de un Shadow DOM mediante el editor gráfico de Kameleoon, es posible que vea un campo de entrada adicional denominado Shadow root path. Este campo aparece cuando Kameleoon detecta que el elemento objetivo existe dentro de un árbol shadow y no se puede acceder a él utilizando selectores estándar. El Shadow root path le permite definir una ruta específica a través de capas anidadas del Shadow DOM para que Kameleoon pueda alcanzar y modificar el elemento durante la ejecución del experimento. Conexión simulada: el editor gráfico utiliza esta ruta para «simular» la conexión entre el DOM principal y el elemento dentro del Shadow DOM, lo que le permite editar y previsualizar los cambios visualmente como si el elemento formara parte de la estructura normal de la página.Ejemplos
Orientar un botón dentro de un shadow root
En el editor gráfico de Kameleoon puede orientar elementos dentro de un shadow root:- Directamente en la zona de previsualización: si se puede acceder al elemento, puede seleccionarlo dentro de la previsualización del editor, igual que cualquier elemento estándar.
- Usando «Edit selector»: para estructuras más complejas, puede construir manualmente la ruta del selector utilizando la entrada Edit selector. Utilice el separador
::SHADOW-ROOT::para indicar un paso dentro de un shadow root.
Inspeccionar Shadow DOM en DevTools
- Haga clic con el botón derecho en el elemento > Inspect.
- En el panel Elements, busque
#shadow-root (open)debajo del elemento personalizado. - Expándalo para ver los elementos internos.
Indicadores visuales o etiquetas en la UI
Al trabajar con páginas web que utilizan Shadow DOM, el editor gráfico de Kameleoon proporciona varios indicadores visuales para ayudarle a identificar cuándo los elementos forman parte de un shadow root.#shadow-root en el panel Elements

#shadow-root como parte de su selector CSS, lo que indica que el elemento está encapsulado y no forma parte del árbol DOM principal.
Campo «Shadow root path» en el panel del selector

::SHADOW-ROOT::.
Cómo escribir una ruta de selector para elementos del Shadow DOM
Al trabajar con elementos del Shadow DOM en el editor gráfico de Kameleoon, un selector CSS estándar no es suficiente. Debe definir una ruta de selector que incluya el shadow root. Para orientar un elemento dentro de un shadow root de un solo nivel, utilice el separador::SHADOW-ROOT:::
custom-element::SHADOW-ROOT::.target-button
El separador ::SHADOW-ROOT:: indica a Kameleoon que debe entrar en el shadow root del elemento especificado y continuar orientando dentro de él utilizando selectores CSS estándar.
Kameleoon actualmente solo admite navegar un nivel dentro del shadow DOM. Si el elemento está anidado dentro de varios shadow roots, no se puede orientar utilizando una ruta de selector completa por el momento.
Ejemplo
my-element::SHADOW-ROOT::.cta
Esto indica a Kameleoon que debe:
- Seleccionar el elemento
my-element. - Entrar en su shadow root.
- Orientar el botón
.ctadentro de él.
Limitaciones y consideraciones
Al trabajar con Shadow DOM, tenga en cuenta las siguientes limitaciones:- Shadow DOM cerrados: no se puede acceder ni modificar los elementos de un shadow root cerrado utilizando el editor gráfico o JavaScript estándar.
- Contenido dinámico o generado por script: si el contenido dentro de un shadow root se genera o actualiza dinámicamente, sus cambios pueden no persistir o no surtir efecto como se espera.
- Restricciones de estilo: los estilos aplicados desde fuera del shadow root a menudo no afectarán a los elementos internos debido a la encapsulación de estilos del Shadow DOM. Es posible que las reglas CSS deban aplicarse directamente dentro de la estructura interna del componente, lo que no es posible a través del editor gráfico.
Shadow root (closed)
Algunos web components utilizan un shadow root cerrado, lo que significa que su DOM interno está completamente oculto de las herramientas de desarrollador del navegador y de JavaScript. A diferencia de un shadow root abierto, al que puede acceder utilizando.shadowRoot, un shadow root cerrado no expone su contenido a través del DOM, lo que lo hace inaccesible para:
- El editor gráfico
- El targeting basado en JavaScript
- Las rutas de selector o los scripts personalizados
¿Qué puede hacer?
Si un elemento clave se encuentra dentro de un shadow root cerrado, necesitará la ayuda de un desarrollador. Esta persona puede:- Reconstruir el componente utilizando un shadow root abierto.
- Exponer elementos concretos para su targeting externo.
- Proporcionar un hook o una solución alternativa para el targeting.