Como usar HTML e com DOM Shadow
Slot HTML é um dos padrões mais notáveis do W3C. Combine isso com outro padrão impressionante do W3C chamado modelos, e você tem uma mistura fabulosa para trabalhar. Ser capaz de criar e adicionar elementos HTML para uma página usando JavaScript é uma tarefa necessária e importante.
É útil quando um snippet de código precisa aparecem apenas em determinados momentos, ou quando você não quer digitar centenas de elementos HTML estruturados de forma semelhante, mas deseja automatize o processo.
Criar elementos HTML em JavaScript é não tão desejável. É um incômodo ter que verificar e verificar novamente se você cobriu todas as tags, colocou-as na ordem certa, apesar de tudo, há apenas também muito para digitar e acompanhar. Esta turbulência, no entanto, tenho uma solução quando o tag apareceu. Se algo precisa ser adicionado à página dinamicamente, você pode colocá-lo dentro do
elemento.
Neste post, vou mostrar como você pode usar o
e tags juntamente com JavaScript para crie uma mini fábrica de tabelas HTML que pode criar e preencher centenas de tabelas semelhantes.
o
e
Tag
o tag contém código HTML que não será processado pelos navegadores até que seja devidamente adicionado ao documento, usando JavaScript. o
tag é um espaço reservado que você adiciona a um DOM Shadow que pode ser feito do conteúdo do elemento.
UMA DOM da Sombra é semelhante a um DOM regular (o modelo de documento analisado do HTML). isto cria uma árvore com escopo (uma árvore DOM Shadow), que tem um raiz própria e também pode ter um estilo próprio.
Quando você insere a árvore Shadow DOM em um elemento no documento principal - o elemento será chamado de host sombra -, todos os elementos filhos do host sombra que estão marcados com o ranhura
atributo (não é o mesmo que o acima mencionado
tag) tomar o seu lugar na subárvore recém-inserida.
O DOM da Sombra, ao escrever este artigo (julho de 2017), é Suportado apenas em navegadores baseados em WebKit e Blink mas você pode verificar o estado atual do suporte ao navegador no CanIUse a qualquer momento.
Configurando o HTML
Ainda confuso? Vamos ver algum código, começando com o elemento.
Dentro Dentro do modelo, Eu também adicionei alguns estilos básicos para a mesa, usando o Fora do modelo, há dois Cada No momento, tudo o que você pode ver na página são as strings de texto contidas nas extensões, por isso precisamos adicionar alguns JavaScript também. Usando JavaScript, inserimos a tabela de dentro do modelo em ambas as divs como uma árvore DOM do Shadow. Após a inserção, as extensões são colocadas em seus respectivos slots dentro da tabela e exibem os títulos das colunas ou os valores das células desejados. O resultado será duas tabelas geradas automaticamente que usam o mesmo modelo. Primeiro, precisamos verificar se o Shadow DOM é suportado no navegador do usuário. o Criamos uma variável personalizada chamada Dentro de tem dois Então nós adicionar uma cópia do conteúdo do modelo para a árvore DOM Shadow usando o E nossas tabelas HTML dinâmicas estão prontas. Veja como a saída se parece no Chrome:, há um
bem usar como planta para criando algumas tabelas isso será adicionado a um documento. tem
elementos dentro das células da tabela ( e ) agindo como espaços reservados para os títulos das colunas e valores das células. Cada slot tem um único nome
atribuir isso identifica isso.
tag.
, para duas tabelas separadas, queremos adicionar à página.
elemento tem um
ranhura
atributo de qual valor é igual ao nome
valor de seus correspondentes
tag dentro .
Anexando a árvore DOM do Shadow
attachShadow ()
método anexa uma árvore DOM Shadow a um elemento e retorna o nó raiz da árvore DOM do Shadow. o E se
condição no código abaixo verifica se o navegador suporta este método testando se os divs na página têm o attachShadow
método. // verifique se o Shadow DOM é suportado if ('attachShadow' em document.createElement ('div')) else console.warn ('attachShadow not supported');
templateContent
naquela serve como referência ao conteúdo do modelo. if ('attachShadow' em document.createElement ('div')) deixar templateContent = document.querySelector ('template'). content; let divs = document.querySelectorAll ('div'); divs.forEach (function (div) // loop interno); else console.warn ('attachShadow não suportado');
para cada
loop, uma árvore DOM Shadow é anexado a cada div (div.attachShadow (mode: 'open')
).modo
opções para attachShadow
: abrir
e fechadas
. E se fechadas
foi escolhido o nó raiz da árvore DOM do Shadow se tornaria inacessível para elementos e objetos externos DOM.templateContent.cloneNode (true)
método. if ('attachShadow' em document.createElement ('div')) deixar templateContent = document.querySelector ('template'). content; let divs = document.querySelectorAll ('div'); divs.forEach (function (div) div.attachShadow (modo: 'aberto'). appendChild (templateContent.cloneNode (true))); else console.warn ('attachShadow não suportado');