FriendsOfREDAXO / minibar

Minibar: Kleine Leiste für REDAXO, die nützliche Funktionen fürs System und den jeweiligen Benutzerkontext anbietet
MIT License
30 stars 3 forks source link

mit shadow-dom realisieren #21

Open staabm opened 5 years ago

staabm commented 5 years ago

https://github.com/redaxo/redaxo/issues/2221

staabm commented 5 years ago

mit folgendem pattern kann man ein custom element realisieren, welches beliebiges html schützt vor externen styles:

<template id="meineIdAmBestenGeneriert">
  <!-- HIER Kommt beliebiges HTML,CSS,SCRIPTS -->
</template>
<script>
(function() {
  window.customElements.define("css-sandbox", class extends HTMLElement {
    constructor() {
      super();
    }

    connectedCallback() {
      const template = document.querySelector(this.getAttribute("template"));
      const shadowRoot = this.attachShadow({mode: "open"});

      const temp = document.importNode(template.content, true);
      shadowRoot.appendChild(temp);
    }
  });
})();
</script>
<css-sandbox template="#meineIdAmBestenGeneriert"></css-sandbox>