Ako používať HTML & S Shadow DOM
Slot HTML je jedným z najpozoruhodnejších noriem W3C. Skombinujte to s ďalším impozantným štandardom W3C šablóny, a máte báječný prípravok na prácu. Byť schopný vytvárať a pridávať prvky HTML na stránku pomocou jazyka JavaScript je nevyhnutnou a dôležitou úlohou.
Je to užitočné, keď musí kódovať útržok kódu sa objavujú iba v určitých časoch, alebo keď nechcete vytlačiť stovky podobne štruktúrovaných prvkov HTML, ale chcete automatizáciu procesu.
Vytváranie prvkov HTML v jazyku JavaScript je nie je tak žiadúce. Je to hádka, ktorá sa musí skontrolovať a skontrolovať, ak ste pokryli všetky značky, umiestnili ich do správneho poriadku, celkovo je to len tiež veľa písať a sledovať. Tento zmätok však, dostal riešenie keď značka sa objavila. Ak to musí byť niečo pridaná do stránky dynamicky, môžete ho dať do vnútra
element.
V tomto príspevku vám ukážem, ako môžete použiť
a tagy spolu s vytvorte továrenskú tabuľku mini HTML ktoré dokážu vytvoriť a zaplniť stovky podobných tabuliek.
a
tagy
tag má HTML kód, ktorý nebudú vykresľované prehliadačmi kým nie je správne pridané do dokumentu pomocou jazyka JavaScript.
tag je a zástupného symbolu, ktorý pridáte do domény Shadow DOM ktoré môžu byť vytvorené z obsahu súboru element.
Stín DOM je podobný normálnemu DOMu (model dokumentu analyzovaný z HTML). to vytvára strom s rozsahom (stínový strom DOM), ktorý má a koreň svojej vlastnej a môže tiež mať svoj vlastný štýl.
Keď vložíte stín stromu DOM do prvku v hlavnom dokumente - prvok sa potom nazýva stínový hostiteľ -, všetky podradené elementy hostiteľa tieňa, ktoré sú označené znakom štrbina
atribút (nie je to isté ako vyššie uvedené
tag) zaujmú ich miesto v novo vloženom podstromu.
Stín DOM, od písania tohto článku (júl 2017), sú podporované iba v prehliadačoch WebKit a Blink ale môžete kedykoľvek skontrolovať aktuálny stav podpory prehliadača CanUUse.
Nastavenie kódu HTML
Stále mätúce? Pozrime sa na nejaký kód, začínajúci element.
vnútri V šablóne, Pridal som tiež niektoré základné štýly pre tabuľku pomocou Mimo šablónu, existujú dva každý Práve teraz všetko, čo môžete vidieť na stránke, sú textové reťazce obsiahnuté v rozpätí, takže musíme pridať aj nejaký JavaScript. Pomocou Javascriptu vložíme tabuľku z vnútra šablóny do oboch divov ako strom stromu Shadow. Po vložení sa okraje umiestnia do príslušných otvorov v tabuľke a zobrazia požadované názvy stĺpcov alebo hodnoty buniek. Výsledok bude dve automaticky generované tabuľky ktoré používajú rovnakú šablónu. Po prvé, musíme skontrolovať, či je v prehliadači používateľa podporovaná funkcia Stín DOM. Vytvoríme vlastnú premennú nazvanú Vnútri Existujú dva Potom my pridajte kópiu obsahu šablóny do stromového stĺpca Shadow používajúceho A naše dynamické HTML tabuľky sú pripravené, ako vyzerá výstup v prehliadači Chrome:, tam je a
my budeme používať ako plán pre vytvára niektoré tabuľky ktoré sa pridajú do dokumentu. Existujú
v bunkách tabuľky ( a ) konajú ako zástupcovia pre názvy stĺpcov a hodnoty buniek. Každý slot má jedinečný názov
atribút, ktorý identifikuje ju.
štítok.
, pre dve samostatné tabuľky, ktoré chceme pridať na stránku.
prvok má a
štrbina
atribút ktorej hodnoty je rovná sa názov
hodnota ich zodpovedajúcich
tag vnútri .
Pripojenie stínového stromu DOM
attachShadow ()
metóda pripojí k prvku strom stromu Shadow a vráti koreňový uzol daného stínového stromu DOM. ak
Podmienka v nižšie uvedenom kóde kontroluje, či prehliadač podporuje túto metódu tým, že testuje, či divs na stránke majú attachShadow
metóda. // skontrolujte, či je podporovaný Shadow DOM ak ('attachShadow' v document.createElement ('div')) else console.warn ('attachShadow not supported');
templateContent
že slúži ako referencia obsahu šablóny. ak ('attachShadow' v document.createElement ('div')) let templateContent = document.querySelector ('template'). nechajte divs = document.querySelectorAll ('div'); divs.forEach (funkcia (div) // vnútorná slučka); else console.warn ('attachShadow nie je podporovaný');
pre každý
slučka, stínový strom stromu je pripojený k každej div (div.attachShadow (mode: 'open'))
).režim
možnosti pre attachShadow
: otvorené
a zatvorené
. ak zatvorené
bol vybraný koreňový uzol stromu stínov DOM by sa stali nedostupnými na vonkajšie prvky a objekty DOM.templateContent.cloneNode (true)
metóda. ak ('attachShadow' v document.createElement ('div')) let templateContent = document.querySelector ('template'). nechajte divs = document.querySelectorAll ('div'); div.for každá (funkcia (div) div.attachShadow (mode: 'open')) appendChild (templateContent.cloneNode (true)); else console.warn ('attachShadow nie je podporovaný');