Jak korzystać z HTML & Z Shadow DOM
Slot HTML jest jednym z najbardziej niezwykłych standardów opracowanych przez W3C. Połącz to z innym imponującym standardem W3C szablony, i masz wspaniałą miksturę do pracy. Mogąc tworzyć i dodawać elementy HTML na stronę używając JavaScript jest koniecznym i ważnym zadaniem.
Jest to przydatne, gdy fragment kodu musi pojawiają się tylko o określonych porach, lub gdy nie chcesz wpisywać setek podobnie ustrukturyzowanych elementów HTML, ale chcesz automatyzuj proces.
Tworzenie elementów HTML w JavaScript to nie tak pożądane. Trudno jest sprawdzać i sprawdzać, czy wszystkie znaczniki zostały zakryte, umieścić je we właściwej kolejności, w sumie, jest tylko zbyt wiele do wpisania i śledzenia. Jednak to zamieszanie, mam rozwiązanie kiedy pojawił się tag. Jeśli coś musi być dodawany do strony dynamicznie, możesz umieścić go w środku
element.
W tym poście pokażę ci, jak możesz użyć
i tagi wraz z JavaScript do utwórz fabrykę tabeli mini HTML które mogą tworzyć i wypełniać setki podobnych tabel.
The
i
tagi
The tag zawiera kod HTML nie będą renderowane przez przeglądarki dopóki nie zostanie poprawnie dodany do dokumentu, za pomocą JavaScript. The
tag to a symbol zastępczy, który dodajesz do Shadow DOM które mogą być wykonane z treści element.
ZA Shadow DOM jest podobny do zwykłego DOM (model dokumentu analizowany z HTML). To tworzy drzewo o zasięgu (drzewo Shadow DOM), które ma własny korzeń i może również mieć własny styl.
Po wstawieniu drzewa Shadow DOM do elementu w głównym dokumencie - element zostanie nazwany gospodarz cieni -, wszystkie elementy potomne hosta-cienia oznaczone symbolem otwór
atrybut (nie taki sam jak wyżej wspomniany)
tag) będzie zajmij ich miejsce w nowo wstawionym poddrzewie.
The Shadow DOM, pisząc ten artykuł (lipiec 2017), są obsługiwane tylko w przeglądarkach opartych na WebKit i Blink ale możesz sprawdzić aktualny stan obsługi przeglądarki w CanIUse w dowolnym momencie.
Konfigurowanie HTML
Nadal mylące? Zobaczmy jakiś kod, zaczynając od element.
Wewnątrz Wewnątrz szablonu, Dodałem też niektóre podstawowe style dla tabeli, używając Poza szablonem, istnieją dwa Każdy W tej chwili wszystko, co widzisz na stronie, to ciągi tekstowe zawarte w zakresach, więc musimy również dodać trochę JavaScript. Używając Javascript, wstawiamy tabelę z wnętrza szablonu do obu div jako drzewo Cienia DOM. Po wstawieniu przęsła są umieszczane w odpowiednich gniazdach wewnątrz stołu i wyświetlają żądane tytuły kolumn lub wartości komórek. Rezultat będzie dwie automatycznie wygenerowane tabele które używają tego samego szablonu. Najpierw musimy sprawdzić, czy Shadow DOM jest obsługiwany w przeglądarce użytkownika. The Tworzymy niestandardową zmienną o nazwie W środku Tam są dwa Wtedy my dodaj kopię treści szablonu do drzewa DOM Shadow przy użyciu A nasze dynamiczne tabele HTML są gotowe, oto jak wygląda wygląd w Chrome:, jest
dobrze używaj jako planu dla tworzenie niektórych tabel które zostaną dodane do dokumentu. Tam są
elementy wewnątrz komórek tabeli ( i ) działając jako symbole zastępcze dla tytułów kolumn i wartości komórek. Każde gniazdo ma unikalny imię
przypisz to identyfikuje to.
etykietka.
, dla dwóch oddzielnych tabel, które chcemy dodać do strony.
element ma
otwór
atrybut, którego wartość wynosi równy imię
wartość odpowiadających im
oznaczyć wewnątrz .
Dołączanie drzewa DOM Shadow
attachShadow ()
metoda dołącza drzewo DOM Shadow do elementu i zwraca główny węzeł drzewa Shadow DOM. The Jeśli
warunek w poniższym kodzie sprawdza, czy przeglądarka obsługuje tę metodę, sprawdzając, czy div na stronie mają attachShadow
metoda. // sprawdź, czy Shadow DOM jest obsługiwany jeśli ('attachShadow' w document.createElement ('div')) else console.warn ('attachShadow nie jest obsługiwany');
templateContent
że służy jako odniesienie do zawartości szablonu. if ('attachShadow' w document.createElement ('div')) let templateContent = document.querySelector ('template'). content; niech divs = document.querySelectorAll ('div'); divs.forEach (function (div) // inside loop); else console.warn ('attachShadow nie jest obsługiwany');
dla każdego
pętla, drzewo DOM Shadow jest dołączony do każdego div (div.attachShadow (tryb: „otwórz”)
).tryb
opcje dla attachShadow
: otwarty
i Zamknięte
. Jeśli Zamknięte
został wybrany węzeł główny drzewa Shadow DOM stałby się niedostępny na zewnątrz elementów DOM i obiektów.templateContent.cloneNode (true)
metoda. if ('attachShadow' w document.createElement ('div')) let templateContent = document.querySelector ('template'). content; niech divs = document.querySelectorAll ('div'); divs.forEach (funkcja (div) div.attachShadow (mode: 'open'). appendChild (templateContent.cloneNode (true))); else console.warn ('attachShadow nie jest obsługiwany');