Slik bruker du HTML & Med Shadow DOM
HTML-spor er en av de mest bemerkelsesverdige standarder laget av W3C. Kombiner det med en annen imponerende W3C-standard som heter maler, og du har en fantastisk concoction å jobbe med. Være i stand til lag og legg til HTML-elementer til en side bruker JavaScript er en nødvendig og viktig oppgave.
Det er nyttig når en kodebit skal vises bare på bestemte tidspunkter, eller når du ikke vil skrive ut hundrevis av like strukturert HTML-elementer, men vil automatiser prosessen.
Opprette HTML-elementer i JavaScript er ikke så ønskelig. Det er et problem å måtte sjekke og kontrollere om du har dekket alle kodene, plassert dem i riktig rekkefølge, alt i alt, det er bare også mye å skrive og holde styr på. Denne uroen, men, fikk en løsning når tag dukket opp. Hvis noe må være lagt til siden dynamisk, du kan sette den inne i
element.
I dette innlegget vil jeg vise deg hvordan du kan bruke
og tagger sammen med JavaScript til opprett en mini-HTML-tabellfabrikk som kan skape og fylle hundrevis av lignende tabeller.
De
og
tags
De tag holder HTML-kode det vil ikke bli gjengitt av nettlesere til den er riktig lagt til i dokumentet, ved hjelp av JavaScript. De
tag er en plassholder du legger til i en skygge DOM som kan gjøres av innholdet i element.
EN Skygge DOM ligner på en vanlig DOM (dokumentmodellen tolket fra HTML). Den skaper et scoped tre (et Shadow DOM-tre), som har a roten av sin egen og kan også ha en egen stil.
Når du legger inn Shadow DOM-treet i et element i hoveddokumentet, blir elementet da kalt skyggeverten -, alle barnelementene i skyggeverten som er merket med slot
attributt (ikke det samme som det nevnte
tag) vil ta plass i den nylig innførte subtreeen.
The Shadow DOM, som skrevet av denne artikkelen (juli 2017), er støttes bare i WebKit- og Blink-baserte nettlesere men du kan når som helst sjekke den faktiske statusen for nettleserstøtte på CanIUse.
Sette opp HTML-en
Fortsatt forvirrende? La oss se noen kode, starter med element.
Innsiden Inne i malen, Jeg har også lagt til noen grunnleggende stiler for bordet, bruk av Utenfor malen, Det er to Hver For øyeblikket er alt du kan se på siden tekststrenger som finnes i spansene, så vi må også legge til noe JavaScript. Ved hjelp av Javascript legger vi inn tabellen fra innsiden av malen i begge divene som et Shadow DOM-tre. Etter innføringen blir spansene plassert i sine respektive spor i bordet og viser ønskede kolonne titler eller celleverdier. Resultatet vil bli to automatisk genererte tabeller som bruker samme mal. Først må vi sjekke om Shadow DOM støttes i brukerens nettleser. De Vi lager en tilpasset variabel som heter Inne i Det er to Da vi legg til en kopi av malinnholdet til Shadow DOM-treet ved hjelp av Og våre dynamiske HTML-tabeller er klare, her er hvordan utdataene ser ut i Chrome:, det er en
vi vil bruk som en tegning til lage noen tabeller som vil bli lagt til i et dokument. Det er
elementer inne i tabellcellene ( og ) fungerer som plassholdere for kolonnetitler og celleverdier. Hvert spor har en unik Navn
tilskrive det identifiserer den.
stikkord.
, for to separate tabeller vi vil legge til på siden.
elementet har a
slot
Attributt av hvilken verdi er lik den Navn
verdi av deres tilsvarende
tag inne .
Feste skyggen DOM-treet
attachShadow ()
metode Føyer et Shadow DOM-tre til et element og returnerer rotnoden til det Shadow DOM-treet. De hvis
tilstanden i koden nedenfor kontrollerer om nettleseren støtter denne metoden ved å teste om divene på siden har attachShadow
metode. // Sjekk om Shadow DOM støttes hvis ('attachShadow' i document.createElement ('div')) else console.warn ('attachShadow ikke støttet');
templateContent
at tjener som referanse til innholdet i malen. hvis ('attachShadow' i document.createElement ('div')) la templateContent = document.querySelector ('template'). innhold; la divs = document.querySelectorAll ('div'); divs.forEach (funksjon (div) // innenfor loop); else console.warn ('attachShadow ikke støttet');
for hver
loop, et Shadow DOM-tre er festet til hver div (div.attachShadow (modus: 'open')
).modus
opsjoner til attachShadow
: åpen
og lukket
. Hvis lukket
ble valgt rotknuten til Shadow DOM-treet ville bli utilgjengelig til utenfor DOM-elementer og objekter.templateContent.cloneNode (sann)
metode. hvis ('attachShadow' i document.createElement ('div')) la templateContent = document.querySelector ('template'). innhold; la divs = document.querySelectorAll ('div'); divs.forEach (funksjon (div) div.attachShadow (modus: 'open'). appendChild (templateContent.cloneNode (true))); else console.warn ('attachShadow ikke støttet');