Cómo utilizar HTML y con Shadow DOM
Ranura de HTML Es uno de los estándares más notables hechos por W3C. Combina eso con otro impresionante estándar W3C llamado plantillas, y tienes un fabuloso brebaje para trabajar. Siendo capaz de crear y agregar elementos HTML a una pagina usando JavaScript es una tarea necesaria e importante.
Es útil cuando un fragmento de código tiene que aparecer solo en ciertos momentos, o cuando no desea escribir cientos de elementos HTML estructurados de manera similar pero desea automatizar el proceso.
Crear elementos HTML en JavaScript es no tan deseable. Es una molestia tener que verificar y volver a verificar si ha cubierto todas las etiquetas, las ha colocado en el orden correcto, en general, solo hay también mucho para escribir y realizar un seguimiento de. Esta confusión, sin embargo, tengo una solución cuando el la etiqueta apareció. Si algo necesita ser agregado dinámicamente a la página, puedes ponerlo dentro de la
elemento.
En este post, te mostraré cómo puedes usar el
y etiquetas junto con JavaScript para crear una mini fábrica de tablas HTML que puede crear y poblar cientos de tablas similares.
los
y
etiquetas
los etiqueta contiene código HTML que no será renderizado por los navegadores hasta que sea correctamente agregado al documento, usando JavaScript. los
etiqueta es una marcador de posición que se agrega a un DOM de sombra que se puede hacer del contenido de la elemento.
UNA Shadow DOM es similar a un DOM regular (el modelo de documento analizado desde HTML). Eso crea un arbol de ámbito (un árbol DOM de sombra), que tiene una raíz propia y también puede tener un estilo propio.
Cuando inserte el árbol DOM de Shadow en un elemento en el documento principal, el elemento se llamará el anfitrión de la sombra -, Todos los elementos secundarios del host de sombra que están marcados con el espacio
atributo (no es lo mismo que el mencionado
etiqueta) tomar su lugar en el subárbol recién insertado.
The Shadow DOM, a partir de la redacción de este artículo (julio de 2017), son Solo se admite en navegadores basados en WebKit y Blink pero puede verificar el estado real de la compatibilidad del navegador en CanIUse en cualquier momento.
Configurando el HTML
¿Todavía confuso? Veamos un código, comenzando con el elemento.
Dentro Dentro de la plantilla, También he añadido algunos estilos basicos para la mesa, usando el Fuera de la plantilla, hay dos Cada En este momento, todo lo que puede ver en la página son las cadenas de texto contenidas en los tramos, por lo que también debemos agregar un poco de JavaScript.. Usando Javascript, insertamos la tabla desde dentro de la plantilla en ambos divs como un árbol DOM de sombra. Después de la inserción, los intervalos se colocan en sus ranuras respectivas dentro de la tabla y muestran los títulos de columna o valores de celda deseados. El resultado será dos tablas autogeneradas que usan la misma plantilla. Primero, debemos verificar si el DOM de Shadow es compatible con el navegador del usuario. los Creamos una variable personalizada llamada Dentro de Existen dos Entonces nosotros añadir una copia del contenido de la plantilla al árbol de DOM Shadow usando el Y, nuestras tablas de HTML dinámico están listas, así es como se ve la salida en Chrome:, hay una
bien utilizar como modelo para creando algunas tablas Eso será agregado a un documento. Existen
elementos dentro de las celdas de la tabla ( y ) actuando como marcadores de posición Para los títulos de columna y valores de celda. Cada ranura tiene una única nombre
atribuir eso lo identifica.
etiqueta.
, Para dos tablas separadas queremos añadir a la página..
elemento tiene un
espacio
atributo de cual valor es igual a la nombre
valor de sus correspondientes
etiqueta dentro .
Adjuntando el árbol DOM de la sombra
attachShadow ()
método adjunta un árbol DOM de sombra a un elemento y devuelve el nodo raíz de ese árbol de Shadow DOM. los Si
La condición en el código siguiente comprueba si el navegador admite este método probando si los divs en la página tienen el attachShadow
método. // compruebe si Shadow DOM es compatible si ('attachShadow' en document.createElement ('div')) else console.warn ('attachShadow no es compatible');
plantillaContenido
ese sirve como referencia al contenido de la plantilla. if ('attachShadow' en document.createElement ('div')) let templateContent = document.querySelector ('template'). content; let divs = document.querySelectorAll ('div'); divs.forEach (function (div) // inside loop); else console.warn ('attachShadow no compatible');
para cada
bucle, un árbol de DOM Shadow es adjunto a cada div (div.attachShadow (mode: 'open')
).modo
opciones para attachShadow
: abierto
y cerrado
. Si cerrado
Se eligió el nodo raíz del árbol Shadow DOM sería inaccesible a elementos y objetos DOM externos.templateContent.cloneNode (true)
método. if ('attachShadow' en document.createElement ('div')) let templateContent = document.querySelector ('template'). content; let divs = document.querySelectorAll ('div'); divs.forEach (function (div) div.attachShadow (mode: 'open'). appendChild (templateContent.cloneNode (true))); else console.warn ('attachShadow no compatible');