single-file-extension-editor-init.js 651 B

123456789101112131415161718192021222324252627282930313233
  1. (function () {
  2. 'use strict';
  3. /* global document */
  4. (() => {
  5. document.currentScript.remove();
  6. processNode(document);
  7. function processNode(node) {
  8. node.querySelectorAll("template[shadowrootmode]").forEach(element => {
  9. let shadowRoot = element.parentElement.shadowRoot;
  10. if (!shadowRoot) {
  11. try {
  12. shadowRoot = element.parentElement.attachShadow({
  13. mode: element.getAttribute("shadowrootmode")
  14. });
  15. shadowRoot.innerHTML = element.innerHTML;
  16. element.remove();
  17. } catch (error) {
  18. // ignored
  19. }
  20. if (shadowRoot) {
  21. processNode(shadowRoot);
  22. }
  23. }
  24. });
  25. }
  26. })();
  27. })();