Je travaille avec le modèle actuel du kit de démarrage PWA de Polymer.
https://github.com/Polymer/pwa-starter-kit/tree/template-typescript
Ma page Web-component element renvoie le code suivant avec un élément DIV :
return html`
${SharedStyles}
<section>
...my content...
</section>
<div id="CONTAINER NAME"></div>
`
Je dois accéder à l'élément CONTAINER NAME à partir d'un javascript externe via document.getElementById. Je sais qu'il se trouve dans le shadow dom mais je ne peux pas modifier le JS externe. La question est donc de savoir comment le rendre accessible depuis le JS via document.getElementById ?
Le JavaScript externe charge un iframe
dans le fichier nommé div
. Ce composant externe a besoin d'obtenir l'élément div par document.getElementById
pour charger l'iframe dans le div spécifié.
J'ai cherché et je n'ai pas trouvé de moyen de forcer l'élément div du shadow dom de ma page web-component à être exposé/placé dans le DOM.
Je viens de trouver la solution mentionnée ici mais je n'ai pas réussi à la faire fonctionner dans le modèle PWA. Peut-être parce que les shadow doms sont en cascade dans le modèle PWA ?
Existe-t-il un moyen de mettre à jour le composant web basé sur le kit Polymer v3/PWA avec le javascript externe (tiers) tout en utilisant document.getElementbyId pour modifier mon div à l'intérieur du composant web ?
Alors, je cherche une possibilité d'utiliser peut-être slots
pour exposer un élément du domaine de l'ombre au domaine de la lumière ? Je n'arrive pas à le faire fonctionner avec les solutions proposées ci-dessus.