Forráskód Böngészése

insert templates into custom tags content

Gildas 6 éve
szülő
commit
c33f5a8b9b
1 módosított fájl, 6 hozzáadás és 2 törlés
  1. 6 2
      lib/single-file/single-file-core.js

+ 6 - 2
lib/single-file/single-file-core.js

@@ -1072,7 +1072,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			if (this.options.shadowRootsData && this.options.shadowRootsData.length) {
 				await processRootElement(this.doc);
 				const scriptElement = rootDoc.createElement("script");
-				scriptElement.textContent = `processNode(document);function processNode(node){node.querySelectorAll("[${WC_ATTRIBUTE_NAME}]").forEach(element=>{const shadowRoot=element.previousElementSibling.attachShadow({mode:"open"});shadowRoot.innerHTML=element.innerHTML;element.remove();processNode(shadowRoot)})}`;
+				scriptElement.textContent = `processNode(document);function processNode(node){node.querySelectorAll("[${WC_ATTRIBUTE_NAME}]").forEach(element=>{const shadowRoot=element.parentElement.attachShadow({mode:"open"});shadowRoot.innerHTML=element.innerHTML;element.remove();processNode(shadowRoot)})}`;
 				this.doc.body.appendChild(scriptElement);
 			}
 
@@ -1101,7 +1101,11 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 									doc.body.childNodes.forEach(node => templateElement.appendChild(doc.importNode(node, true)));
 								}
 								await processRootElement(templateElement);
-								element.insertAdjacentElement("afterend", templateElement);
+								if (element.firstChild) {
+									element.insertBefore(templateElement, element.firstChild);
+								} else {
+									element.appendChild(templateElement);
+								}
 							} else {
 								stats.add("discarded", "shadow root elements", 1);
 							}