ソースを参照

fixed issue with removed text nodes

Gildas 7 年 前
コミット
6508906917
1 ファイル変更10 行追加10 行削除
  1. 10 10
      lib/single-file/single-file-core.js

+ 10 - 10
lib/single-file/single-file-core.js

@@ -1151,16 +1151,16 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 			function removeUnmarkedElements(element) {
 				let selectedElementFound = false;
 				Array.from(element.childNodes).forEach(node => {
-					const isSelectedElement = node.getAttribute && node.getAttribute(SELECTED_CONTENT_ATTRIBUTE_NAME) == "";
-					selectedElementFound = selectedElementFound || isSelectedElement;
-					if (isSelectedElement) {
-						node.removeAttribute(SELECTED_CONTENT_ATTRIBUTE_NAME);
-						removeUnmarkedElements(node);
-					} else if (selectedElementFound) {
-						removeNode(node);
-					} else if (node.style) {
-						node.style.setProperty("display", "none", "important");
-						if (node.childNodes) {
+					if (node.nodeType == 1) {
+						const isSelectedElement = node.getAttribute(SELECTED_CONTENT_ATTRIBUTE_NAME) == "";
+						selectedElementFound = selectedElementFound || isSelectedElement;
+						if (isSelectedElement) {
+							node.removeAttribute(SELECTED_CONTENT_ATTRIBUTE_NAME);
+							removeUnmarkedElements(node);
+						} else if (selectedElementFound) {
+							removeNode(node);
+						} else {
+							node.style.setProperty("display", "none", "important");
 							Array.from(node.childNodes).forEach(removeNode);
 						}
 					}