Kaip naudoti HTML & su Shadow DOM
HTML lizdas yra vienas iš žymiausių W3C standartų. Sujunkite tą kitą įspūdingą W3C standartą šablonų, ir jūs turite nuostabų užkandį dirbti. Galimybė sukurti ir pridėti HTML elementus į puslapį naudojant „JavaScript“ yra būtina ir svarbi užduotis.
Tai naudinga, kai reikia kodo fragmento rodomi tik tam tikru laiku, arba kai nenorite įvesti šimtų panašiai struktūrizuotų HTML elementų, bet norite automatizuoti procesą.
HTML elementų kūrimas „JavaScript“ yra ne taip pageidautina. Tai yra problema, kurią reikia patikrinti ir iš naujo patikrinti, ar padengėte visas žymes, įdėjote jas į teisingą tvarką, iš viso yra tiesiog taip pat daug rašyti ir sekti. Tačiau šis neramumas, gavo sprendimą kai pasirodė žyma. Jei kažkas turi būti dinamiškai pridėta prie puslapio, galite įdėti jį į
elementas.
Šiame pranešime parodysiu, kaip galite naudoti
ir žymos kartu su „JavaScript“ sukurti mini HTML lentelės gamyklą tai gali sukurti ir užpildyti šimtus panašių lentelių.
The
ir
žymės
The žyma turi HTML kodą naršyklės nebus teikiamos kol jis tinkamai pridedamas prie dokumento, naudodami „JavaScript“. The
žyma yra a vieta, kurią pridėjote prie „Shadow DOM“ kurios gali būti padarytos iš. \ t elementas.
A Shadow DOM yra panašus į įprastą DOM (dokumento modelis, išnagrinėtas iš HTML). Tai sukuria suskirstytą medį (Shadow DOM medis), kuriame yra a šaknis ir taip pat gali turėti stiliaus.
Įdėjus „Shadow DOM“ medį į pagrindinio dokumento elementą, elementas bus vadinamas šešėlis šeimininkas -, visi šešėlinio kompiuterio vaiko elementai, pažymėti lizdą
atributas (ne tas pats, kaip minėta
žyma) atsiduria naujai įterptoje subtekloje.
Shadow DOM, nuo šio straipsnio rašymo (2017 m. Liepos mėn.), Yra palaikomos tik „WebKit“ ir „Blink“ pagrindu veikiančiose naršyklėse bet kuriuo metu galite patikrinti „CanIUse“ naršyklės palaikymo faktinę būseną.
HTML nustatymas
Vis dar painu? Pamatysime kodą, pradedant nuo elementas.
Viduje Šablone, Aš taip pat pridėjau kai kurie pagrindiniai stiliai naudodami lentelę Už šablono, yra du Kiekvienas Šiuo metu viskas, ką galite matyti puslapyje, yra teksto eilutės, esančios laidose, todėl turime pridėti ir JavaScript.. Naudodami „Javascript“, įterpiame lentelę iš šablono į abi puses kaip šešėlis DOM medis. Po įterpimo, skerspjūvis patenka į atitinkamas stalo lenteles ir parodo norimus stulpelių pavadinimus arba ląstelių reikšmes. Rezultatas bus dvi automatizuotos lentelės kurie naudoja tą patį šabloną. Pirma, turime patikrinti, ar vartotojo naršyklėje yra palaikomas „Shadow DOM“. The Mes sukuriame priskirtą kintamąjį Viduje Yra du Tada mes pridėkite šablono turinio kopiją į Shadow DOM medį naudodami Be to, mūsų dinaminės HTML lentelės yra parengtos, kaip išvaizda atrodo „Chrome“:, ten yra
mes naudoti kaip planą dėl kuriant kai kurias lenteles tai bus pridėta prie dokumento. Yra
elementai stalo ląstelių viduje ( ir ) veikiantys kaip vietos pareigūnai stulpelių pavadinimams ir ląstelių reikšmėms. Kiekviena lizdas turi unikalų vardas
atributas tai identifikuoja jį.
žyma.
, dvi atskiras lenteles, kurias norime pridėti prie puslapio.
elementas turi a
lizdą
atributas, kurio vertė yra lygus vardas
vertė jų atitinkamą
žyma viduje .
„Shadow DOM“ medžio prijungimas
attachShadow ()
metodas prie elemento prideda „Shadow DOM“ medį ir grąžina to „Shadow DOM“ medžio šakninį mazgą. The jei
žemiau esančio kodo būklė patikrina, ar naršyklė palaiko šį metodą bandydama, ar puslapio divai yra attachShadow
metodas. // patikrinti, ar „Shadow DOM“ yra palaikoma, jei („attachShadow“ dokumente.createElement ('div')) else console.warn („attachShadow nepalaikoma“);
templateContent
kad nuoroda prie šablono turinio. if ('attachShadow' in document.createElement ('div')) let templateContent = document.querySelector ("šablonas"). tegul divs = document.querySelectorAll ('div'); divs.forEach (funkcija (div) // vidinė kilpa); other console.warn („attachShadow nepalaikoma“);
kiekvienam
kilpa, Shadow DOM medis prie kiekvieno div (div.attachShadow (mode: 'open')
).režimu
galimybės dėl attachShadow
: atviras
ir uždaryta
. Jei uždaryta
buvo pasirinktas Shadow DOM medžio šaknis taptų nepasiekiama į išorinius DOM elementus ir objektus.templateContent.cloneNode (tiesa)
metodas. if ('attachShadow' in document.createElement ('div')) let templateContent = document.querySelector ("šablonas"). tegul divs = document.querySelectorAll ('div'); divs.forEach (funkcija (div) div.attachShadow (mode: 'open'). appendChild (templateContent.cloneNode (true))); other console.warn („attachShadow nepalaikoma“);