Comment utiliser HTML & avec Shadow DOM
Emplacement HTML est l’un des standards les plus remarquables du W3C. Combinez cela avec un autre standard impressionnant du W3C appelé des modèles, et vous avez un fabuleux mélange à utiliser. Être capable de créer et ajouter des éléments HTML à une page en utilisant JavaScript est une tâche nécessaire et importante.
C'est utile lorsqu'un extrait de code doit apparaissent seulement à certains moments, ou lorsque vous ne voulez pas taper des centaines d’éléments HTML structurés de la même façon mais que vous souhaitez automatiser le processus.
La création d’éléments HTML en JavaScript est pas si désirable. Il est fastidieux de devoir vérifier et revérifier si vous avez couvert toutes les balises, les avez placées dans le bon ordre, tout compte fait, il y a juste aussi beaucoup à taper et à garder une trace. Cette tourmente, cependant, a une solution quand le la balise est apparue. Si quelque chose doit être ajouté à la page dynamiquement, vous pouvez le mettre à l'intérieur du
élément.
Dans ce post, je vais vous montrer comment utiliser le
et balises avec JavaScript pour créer une mini usine de table HTML qui peut créer et peupler des centaines de tables similaires.
le
et
Mots clés
le La balise contient du code HTML ne sera pas rendu par les navigateurs jusqu'à ce qu'il soit correctement ajouté au document, en utilisant JavaScript. le
la balise est un espace réservé que vous ajoutez à un DOM Shadow qui peut être fait du contenu de la élément.
UNE Shadow DOM est similaire à un DOM classique (le modèle de document analysé à partir de HTML). Il crée un arbre couvert (un arbre DOM Shadow), qui a un racine de son propre et peut aussi avoir un son propre style.
Lorsque vous insérez l’arbre DOM Shadow dans un élément du document principal, cet élément sera appelé élément hôte d'ombre -, tous les éléments enfants de l'hôte shadow qui sont marqués du fente
attribut (différent de celui mentionné ci-dessus
tag) sera prennent leur place dans le sous-arbre nouvellement inséré.
Les DOM Shadow, au moment de la rédaction de cet article (juillet 2017), sont pris en charge uniquement dans les navigateurs WebKit et Blink mais vous pouvez vérifier l'état actuel de la prise en charge du navigateur sur CanIUse à tout moment..
Mise en place du HTML
Toujours déroutant? Voyons un peu de code, en commençant par le élément.
À l'intérieur À l'intérieur du modèle, J'ai aussi ajouté quelques styles de base pour la table, en utilisant le En dehors du modèle, il y en a deux Chaque À l'heure actuelle, tout ce que vous pouvez voir sur la page sont les chaînes de texte contenues dans les étendues. Nous devons donc également ajouter du JavaScript.. En utilisant Javascript, nous insérons la table de l'intérieur du modèle dans les deux div comme un arbre DOM Shadow. Après l'insertion, les plages sont placées dans leurs emplacements respectifs à l'intérieur du tableau et affichent les titres de colonne ou les valeurs de cellule souhaités. Le résultat sera deux tables générées automatiquement qui utilisent le même modèle. Premièrement, nous devons vérifier si le DOM Shadow est pris en charge dans le navigateur de l'utilisateur. le Nous créons une variable personnalisée appelée À l'intérieur de Il y a deux Ensuite nous ajouter une copie du contenu du modèle à l’arbre DOM Shadow en utilisant le De plus, nos tableaux HTML dynamiques sont prêts. Voici comment se présente la sortie dans Chrome:, il y a un
bien utiliser comme un plan pour créer des tables cela sera ajouté à un document. Il y a
éléments à l'intérieur des cellules du tableau ( et ) agissant comme des espaces réservés pour les titres de colonne et les valeurs de cellule. Chaque emplacement a un unique prénom
attribuer cela l'identifie.
étiquette.
, pour deux tables distinctes, nous voulons ajouter à la page.
l'élément a
fente
attribut dont la valeur est égale à la prénom
valeur de leur correspondant
étiquette à l'intérieur .
Attachement de l'arbre DOM Shadow
attachShadow ()
méthode attache un arbre DOM Shadow à un élément et retourne le noeud racine de cet arbre DOM Shadow. le si
La condition dans le code ci-dessous vérifie si le navigateur prend en charge cette méthode en testant si les div de la page ont le attachShadow
méthode. // vérifie si le DOM Shadow est pris en charge if ('attachShadow' dans document.createElement ('div')) else console.warn ('attachShadow not supported');
templateContent
cette sert de référence au contenu du modèle. if ('attachShadow' dans document.createElement ('div')) let templateContent = document.querySelector ('template'). content; let divs = document.querySelectorAll ('div'); divs.forEach (function (div) // boucle intérieure); else console.warn ('attachShadow non supporté');
pour chaque
boucle, un arbre DOM Shadow est attaché à chaque div (div.attachShadow (mode: 'open')
).mode
options pour attachShadow
: ouvrir
et fermé
. Si fermé
a été choisi le nœud racine de l'arborescence DOM Shadow deviendrait inaccessible aux éléments et objets DOM extérieurs.templateContent.cloneNode (true)
méthode. if ('attachShadow' dans 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 non supporté');