So verwenden Sie HTML & mit Schatten-DOM
HTML-Slot ist einer der bemerkenswertesten Standards von W3C. Kombinieren Sie das mit einem anderen beeindruckenden W3C-Standard Vorlagen, und Sie haben eine fantastische Zubereitung, mit der Sie arbeiten können. Fähig sein zu HTML-Elemente erstellen und hinzufügen zu einer Seite mit JavaScript ist eine notwendige und wichtige Aufgabe.
Dies ist nützlich, wenn ein Code-Snippet erforderlich ist erscheinen nur zu bestimmten Zeiten, oder wenn Sie nicht hunderte gleichartig strukturierte HTML-Elemente eingeben möchten, dies jedoch möchten Automatisieren Sie den Prozess.
Das Erstellen von HTML-Elementen in JavaScript ist nicht so wünschenswert. Es ist umständlich, dass Sie prüfen und erneut prüfen müssen, ob Sie alle Tags abgedeckt und in der richtigen Reihenfolge platziert haben. Alles in allem gibt es nur auch viel zu schreiben und zu verfolgen. Dieser Aufruhr jedoch, habe eine Lösung wenn der tag erschienen. Wenn etwas sein muss dynamisch zur Seite hinzugefügt, Sie können es in die
Element.
In diesem Beitrag werde ich Ihnen zeigen, wie Sie das nutzen können
und Tags zusammen mit JavaScript an Erstellen Sie eine Mini-HTML-Tabellenfabrik das kann Hunderte von ähnlichen Tabellen erstellen und füllen.
Das
und
Stichworte
Das Tag enthält HTML-Code wird von Browsern nicht gerendert bis es ordnungsgemäß zum Dokument hinzugefügt wird, mithilfe von JavaScript. Das
Tag ist ein Platzhalter, den Sie einem Schatten-DOM hinzufügen das kann aus dem Inhalt der gemacht werden Element.
EIN Schatten-DOM ähnelt einem regulären DOM (das aus HTML geparste Dokumentmodell). Es erstellt einen Baum mit Umfang (ein Schatten-DOM-Baum), der hat eine Wurzel für sich und kann auch eine haben Stil für sich.
Wenn Sie den Shadow-DOM-Baum in ein Element im Hauptdokument einfügen, wird das Element als bezeichnet Schattenhost -, alle untergeordneten Elemente des Schattenhosts, die mit gekennzeichnet sind Slot
Attribut (nicht dasselbe wie das zuvor genannte)
tag) wird nehmen Sie ihren Platz im neu eingefügten Teilbaum ein.
Die Shadow DOM, wie zum Zeitpunkt der Veröffentlichung dieses Artikels (Juli 2017), sind wird nur in WebKit- und Blink-basierten Browsern unterstützt Sie können jedoch jederzeit den aktuellen Status der Browser-Unterstützung auf CanIUse überprüfen.
HTML einrichten
Immer noch verwirrend? Lassen Sie uns einen Code sehen, beginnend mit dem Element.
Innerhalb In der Vorlage, Ich habe auch hinzugefügt einige grundlegende Stile für die Tabelle mit der Außerhalb der Vorlage, es gibt zwei Jeder Im Moment können Sie auf der Seite nur die Textzeichenfolgen sehen, die in den Bereichen enthalten sind. Daher müssen Sie auch etwas JavaScript hinzufügen. Mit Javascript fügen wir die Tabelle aus der Vorlage in beide divs ein als Schatten-DOM-Baum. Nach dem Einfügen werden die Felder in die entsprechenden Felder in der Tabelle eingefügt und zeigen die gewünschten Spaltentitel oder Zellenwerte an. Das Ergebnis wird sein zwei automatisch generierte Tabellen die dieselbe Vorlage verwenden. Zuerst müssen wir überprüfen, ob das Shadow-DOM im Browser des Benutzers unterstützt wird. Das Wir erstellen eine benutzerdefinierte Variable namens In der Es gibt zwei Dann sind wir Fügen Sie eine Kopie des Vorlageninhalts hinzu zum Schatten-DOM-Baum mit der Unsere dynamischen HTML-Tabellen sind fertig. Die Ausgabe sieht in Chrome so aus:, Da ist ein
Gut als Blaupause verwenden zum einige Tabellen erstellen das wird einem Dokument hinzugefügt. Es gibt
Elemente in den Tabellenzellen ( und ) als Platzhalter fungieren für die Spaltenüberschriften und Zellenwerte. Jeder Slot hat ein Unikat Name
Attribut das identifiziert es.
Etikett.
, Für zwei separate Tabellen möchten wir die Seite hinzufügen.
Element hat eine
Slot
Attribut von welchem Wert ist gleich dem Name
Wert von ihren entsprechenden
innen markieren .
Anhängen des Schatten-DOM-Baums
attachShadow ()
Methode Fügt einem Element einen Schatten-DOM-Baum hinzu und gibt den Stammknoten dieser Schatten-DOM-Struktur zurück. Das ob
Die folgende Bedingung prüft, ob der Browser diese Methode unterstützt, indem er prüft, ob die divs auf der Seite die attachShadow
Methode. // Prüfen, ob Shadow DOM unterstützt wird if ('attachShadow' in document.createElement ('div')) else console.warn ('attachShadow nicht unterstützt');
templateContent
Das dient als Referenz zum Inhalt der Vorlage. if ('attachShadow' in document.createElement ('div')) let templateContent = document.querySelector ('template'). content; let divs = document.querySelectorAll ('div'); divs.forEach (function (div) // in der Schleife); else console.warn ('attachShadow nicht unterstützt');
für jeden
Schleife ist ein Schatten-DOM-Baum an jedem div befestigt (div.attachShadow (mode: 'open')
).Modus
Optionen zum attachShadow
: öffnen
und geschlossen
. Ob geschlossen
wurde als Wurzelknoten des Shadow-DOM-Baums ausgewählt würde unzugänglich werden außerhalb von DOM-Elementen und -Objekten.templateContent.cloneNode (true)
Methode. if ('attachShadow' in document.createElement ('div')) let templateContent = document.querySelector ('template'). content; let divs = document.querySelectorAll ('div'); divs.forEach (function (div) div.attachShadow (mode: 'open'). appendChild (templateContent.cloneNode (true))); else console.warn ('attachShadow nicht unterstützt');