浏览代码

fixed serialization of noscript tags

Former-commit-id: 3ed356fdf13f9290996ef3b5168a68a21961e460
Gildas 6 年之前
父节点
当前提交
b2f9039df4
共有 2 个文件被更改,包括 4 次插入4 次删除
  1. 2 2
      lib/single-file/modules/html-serializer.js
  2. 2 2
      lib/single-file/single-file-helper.js

+ 2 - 2
lib/single-file/modules/html-serializer.js

@@ -116,8 +116,8 @@ this.singlefile.lib.modules.serializer = this.singlefile.lib.modules.serializer
 			Array.from(element.attributes).forEach(attribute => content += serializeAttribute(attribute, element, compressHTML));
 			content += ">";
 		}
-		if (element.tagName == "TEMPLATE") {
-			content += element.innerHTML || element.textContent;
+		if (element.tagName == "TEMPLATE" && !element.childNodes.length) {
+			content += element.innerHTML || element.dataset.innerHTML;
 		} else {
 			Array.from(element.childNodes).forEach(childNode => content += serialize(childNode, compressHTML));
 		}

+ 2 - 2
lib/single-file/single-file-helper.js

@@ -94,7 +94,7 @@ this.singlefile.lib.helper = this.singlefile.lib.helper || (() => {
 		doc.querySelectorAll("noscript").forEach(element => {
 			const disabledNoscriptElement = doc.createElement("template");
 			disabledNoscriptElement.setAttribute(DISABLED_NOSCRIPT_ATTRIBUTE_NAME, "");
-			disabledNoscriptElement.textContent = element.textContent;
+			disabledNoscriptElement.dataset.innerHTML = element.textContent;
 			element.parentElement.replaceChild(disabledNoscriptElement, element);
 		});
 		initDoc(doc);
@@ -312,7 +312,7 @@ this.singlefile.lib.helper = this.singlefile.lib.helper || (() => {
 	function postProcessDoc(doc, markedElements) {
 		doc.querySelectorAll("[" + DISABLED_NOSCRIPT_ATTRIBUTE_NAME + "]").forEach(element => {
 			const noscriptElement = doc.createElement("noscript");
-			noscriptElement.textContent = element.innerHTML || element.textContent;
+			noscriptElement.textContent = element.dataset.innerHTML;
 			element.parentElement.replaceChild(noscriptElement, element);
 		});
 		doc.querySelectorAll("meta[disabled-http-equiv]").forEach(element => {