Ver código fonte

fixed issue when processing template tags w/o parents

Former-commit-id: e45336ac79e6b898d0540e0f20f5e13bc3e59b2b
Gildas 6 anos atrás
pai
commit
d166632458
1 arquivos alterados com 12 adições e 10 exclusões
  1. 12 10
      extension/ui/content/content-ui-editor-web.js

+ 12 - 10
extension/ui/content/content-ui-editor-web.js

@@ -1411,17 +1411,19 @@ table {
 
 
 	function deserializeShadowRoots(node) {
 	function deserializeShadowRoots(node) {
 		node.querySelectorAll(`template[${SHADOW_MODE_ATTRIBUTE_NAME}]`).forEach(element => {
 		node.querySelectorAll(`template[${SHADOW_MODE_ATTRIBUTE_NAME}]`).forEach(element => {
-			let shadowRoot = element.parentElement.shadowRoot;
-			if (shadowRoot) {
-				Array.from(element.childNodes).forEach(node => shadowRoot.appendChild(node));
-				element.remove();
-			} else {
-				shadowRoot = element.parentElement.attachShadow({ mode: "open" });
-				const contentDocument = (new DOMParser()).parseFromString(element.innerHTML, "text/html");
-				Array.from(contentDocument.head.childNodes).forEach(node => shadowRoot.appendChild(node));
-				Array.from(contentDocument.body.childNodes).forEach(node => shadowRoot.appendChild(node));
+			if (element.parentElement) {
+				let shadowRoot = element.parentElement.shadowRoot;
+				if (shadowRoot) {
+					Array.from(element.childNodes).forEach(node => shadowRoot.appendChild(node));
+					element.remove();
+				} else {
+					shadowRoot = element.parentElement.attachShadow({ mode: "open" });
+					const contentDocument = (new DOMParser()).parseFromString(element.innerHTML, "text/html");
+					Array.from(contentDocument.head.childNodes).forEach(node => shadowRoot.appendChild(node));
+					Array.from(contentDocument.body.childNodes).forEach(node => shadowRoot.appendChild(node));
+				}
+				deserializeShadowRoots(shadowRoot);
 			}
 			}
-			deserializeShadowRoots(shadowRoot);
 		});
 		});
 	}
 	}