3 votes

comment obtenir une référence à shadowRoot qui contient un élément donné ?

J'utilise des composants web.

J'ai un arbre de nœuds comme ceci, tel que décrit par l'inspecteur des outils de développement de chrome :

<div>
-- <my-fancy-custom-elem> (this is the web component)
---- #shadow-root
------ <div class="button-container">
-------- <button class="a-button-in-a-web-comp">

Je suis en mesure d'obtenir une référence à la <button> par le biais d'un écouteur d'événements initié en dehors de la classe du composant web.

Similaire à ceci :

document.addEventListener("click", (event) => {
   const clickedElem = event.composedPath()[0]
   if(clickedElem.matches('.a-button-in-a-web-comp')){
     console.log(clickedElem.parentNode.parentNode)
   }
});

Je peux obtenir une référence à la #shadow-root en appelant clickedElem.parentNode.parentNode . Cependant, je cherche un moyen d'obtenir de manière fiable l'ancêtre shadow-Root de ce fichier. <button> peu importe la profondeur de l'arbre où il vit. Et même si je ne sais pas à quelle profondeur dans l'arbre il vit.

En d'autres termes, je cherche un moyen de renvoyer de manière fiable le premier Shadow-Root qui contient l'élément X, lorsque je dispose d'une référence à X.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X