Kuidas kasutada HTML & Shadow DOM-iga
HTML Slot on üks W3C kõige olulisemaid standardeid. Ühendage see teise muljetavaldava W3C standardiga malle, ja teil on vapustav käsitsemine. Võimeline HTML-elementide loomine ja lisamine lehele JavaScript on vajalik ja oluline ülesanne.
See on kasulik, kui koodilõigu peab olema ilmuvad ainult teatud aegadel, või kui te ei soovi välja kirjutada sadu sarnaselt struktureeritud HTML-elemente, vaid soovid protsessi automatiseerimine.
HTML-elementide loomine JavaScriptis on mitte nii soovitav. See on kiusame, et kontrollida ja kontrollida, kas olete kõik sildid katnud, paigutanud need õigesse järjekorda, kokku on olemas ka palju kirjutada ja jälgida. See segadus aga, sain lahenduse kui silt ilmus. Kui midagi peab olema lisatud lehele dünaamiliselt, saate selle selle sisemusse panna
element.
Selles postituses näitan teile, kuidas seda kasutada
ja sildid koos JavaScriptiga luua mini HTML tabeli tehas see võib luua ja asustada sadu sarnaseid tabeleid.
The
ja
sildid
The silt omab HTML-koodi brauserid seda ei tee kuni see on õigesti lisatud dokumendile, kasutades JavaScripti. The
silt on a kohatäitja, mida lisate Shadow DOM-ile mida saab teha programmi sisust element.
A Shadow DOM on sarnane tavalise DOM-iga (HTML-i poolt analüüsitud dokumendimudel). See loob loetud puu (Shadow DOM puu), millel on a oma juur ja võib olla ka a stiili.
Kui sisestate Shadow DOM puu põhidokumendi elemendisse, siis nimetatakse elementi vari host -, kõik varjehoidja lapse elemendid, mis on tähistatud tähega pesa
atribuut (mitte sama, mis ülalnimetatud
tag) asuma äsja sisestatud alamtagas.
Shadow DOM, alates selle artikli kirjutamisest (juuli 2017), on toetatakse ainult WebKit- ja Blink-põhistes brauserites kuid saate vaadata CanIUse'i brauseritoe tegelikku olekut igal ajal.
HTML-i seadistamine
Ikka veel segane? Vaatame koodi, alustades element.
Toas Malli sees, Olen ka lisanud mõned põhilised stiilid tabeli jaoks Väljaspool malli, on kaks Iga Praegu on kõik lehel näha olevad tekstilõigud, mis peavad sisaldama ka neid, nii et peame lisama ka mõned JavaScripti. Kasutades Javascripti, sisestame tabeli malli sisemusest mõlemasse divs kui vari DOM puu. Pärast sisestamist paigutatakse otsad tabeli sees olevasse vastavasse pilusse ja kuvatakse soovitud veergude pealkirjad või raku väärtused. Tulemuseks on kaks automaatset genereeritud tabelit mis kasutavad sama malli. Esiteks peame kontrollima, kas kasutaja brauser toetab Shadow DOM-i. The Loome kohandatud muutuja, mida kutsutakse Sisse Seal on kaks Siis me lisage malli sisu koopia Shadow DOM puu, kasutades Ja meie dünaamilised HTML-tabelid on valmis, nii et väljund näeb välja Chrome'is:, seal on
me kasutada plaanina jaoks mõnede tabelite loomine see lisatakse dokumendile. Seal on
elemente tabeli lahtrites ( ja ) tegutsevad kohanäitajatena veerude pealkirjade ja lahtri väärtuste jaoks. Igal pesal on unikaalne nimi
omistada seda identifitseerib selle.
silt.
, kahe eraldi tabeli jaoks, mida tahame lehele lisada.
elemendil on a
pesa
atribuut, mille väärtus on võrdne nimi
väärtus nende vastavat
sildi sees .
Shadow DOM puu kinnitamine
attachShadow ()
meetod kinnitab elementi Shadow DOM puu ja tagastab selle Shadow DOM puu juure sõlme. The kui
Allolevas koodis toodud tingimus kontrollib, kas brauser toetab seda meetodit, testides, kas lehel olevad divid on attachShadow
meetod. // kontrollige, kas Shadow DOM-i toetatakse, kui ('attachShadow' in document.createElement ('div')) else console.warn ('attachShadow pole toetatud');
templateContent
seda viide vormi sisu. if ('attachShadow' in document.createElement ('div')) let templateContent = document.querySelector ('mall'). sisu; let divs = document.querySelectorAll ('div'); divs.forEach (funktsioon (div) // sees silmus); else console.warn ('attachShadow pole toetatud');
igaühele
loop, Shadow DOM puu on iga div (div.attachShadow (mode: 'open')
).režiimis
võimalusi jaoks attachShadow
: avatud
ja suletud
. Kui suletud
valiti Shadow DOM puu juurtsõlm muutuks kättesaamatuks väljaspool DOMi elemente ja objekte.templateContent.cloneNode (true)
meetod. if ('attachShadow' in document.createElement ('div')) let templateContent = document.querySelector ('mall'). sisu; let divs = document.querySelectorAll ('div'); divs.forEach (funktsioon (div) div.attachShadow (mode: 'open'). appendChild (templateContent.cloneNode (true))); else console.warn ('attachShadow pole toetatud');