Jelajahi Sumber

add delegatesFocus attribute to templates only if set to true

Gildas 6 tahun lalu
induk
melakukan
0ae1bb2fb3
1 mengubah file dengan 4 tambahan dan 2 penghapusan
  1. 4 2
      lib/single-file/single-file-core.js

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

@@ -911,7 +911,7 @@ this.singlefile.lib.core = this.singlefile.lib.core || (() => {
 			if (this.options.shadowRoots && this.options.shadowRoots.length) {
 				processElement(this.doc);
 				const scriptElement = doc.createElement("script");
-				scriptElement.textContent = `(()=>{document.currentScript.remove();processNode(document);function processNode(node){node.querySelectorAll("template[${SHADOW_MODE_ATTRIBUTE_NAME}]").forEach(element=>{if (!element.parentElement.shadowRoot) {const shadowRoot=element.parentElement.attachShadow({mode:element.getAttribute("${SHADOW_MODE_ATTRIBUTE_NAME}"),delegatesFocus:element.getAttribute("${SHADOW_DELEGATE_FOCUS_ATTRIBUTE_NAME}") == "true"});shadowRoot.innerHTML=element.innerHTML;element.remove();processNode(shadowRoot)}})}})()`;
+				scriptElement.textContent = `(()=>{document.currentScript.remove();processNode(document);function processNode(node){node.querySelectorAll("template[${SHADOW_MODE_ATTRIBUTE_NAME}]").forEach(element=>{if (!element.parentElement.shadowRoot) {const shadowRoot=element.parentElement.attachShadow({mode:element.getAttribute("${SHADOW_MODE_ATTRIBUTE_NAME}"),delegatesFocus:Boolean(element.getAttribute("${SHADOW_DELEGATE_FOCUS_ATTRIBUTE_NAME}"))});shadowRoot.innerHTML=element.innerHTML;element.remove();processNode(shadowRoot)}})}})()`;
 				doc.body.appendChild(scriptElement);
 			}
 
@@ -924,7 +924,9 @@ this.singlefile.lib.core = this.singlefile.lib.core || (() => {
 						if (shadowRootData) {
 							const templateElement = doc.createElement("template");
 							templateElement.setAttribute(SHADOW_MODE_ATTRIBUTE_NAME, shadowRootData.mode);
-							templateElement.setAttribute(SHADOW_DELEGATE_FOCUS_ATTRIBUTE_NAME, Boolean(shadowRootData.delegatesFocus));
+							if (shadowRootData.delegatesFocus) {
+								templateElement.setAttribute(SHADOW_DELEGATE_FOCUS_ATTRIBUTE_NAME);
+							}
 							const shadowDoc = util.parseDocContent(shadowRootData.content);
 							if (shadowDoc.head) {
 								const metaCharset = shadowDoc.head.querySelector("meta[charset]");