ソースを参照

removed usage of "win" when possible

Gildas 6 年 前
コミット
e4fef16e31
1 ファイル変更6 行追加5 行削除
  1. 6 5
      lib/single-file/util/doc-helper.js

+ 6 - 5
lib/single-file/util/doc-helper.js

@@ -77,6 +77,8 @@ this.docHelper = this.docHelper || (() => {
 		if (win) {
 			canvasData = getCanvasData(doc, win);
 			imageData = getImageData(doc, win, options);
+		}
+		if (win) {
 			if (doc.body && (options.removeHiddenElements || options.removeUnusedFonts || options.compressHTML)) {
 				let elementsInfo = getElementsInfo(win, doc.body);
 				if (options.removeHiddenElements) {
@@ -85,7 +87,7 @@ this.docHelper = this.docHelper || (() => {
 						ignoredTags = ignoredTags.concat("SCRIPT");
 					}
 					markHiddenCandidates(win, doc.body, elementsInfo, false, new Set(), ignoredTags);
-					markHiddenElements(win, doc.body, imageData);
+					markHiddenElements(doc.body, imageData);
 					doc.querySelectorAll("iframe").forEach(element => {
 						if (element.getBoundingClientRect) {
 							const boundingRect = element.getBoundingClientRect();
@@ -160,7 +162,7 @@ this.docHelper = this.docHelper || (() => {
 	}
 
 	function getElementsInfo(win, element, elementsInfo = new Map()) {
-		const elements = Array.from(element.childNodes).filter(node => !win || node instanceof win.Element);
+		const elements = Array.from(element.childNodes).filter(node => node.nodeType == 1);
 		elements.forEach(element => {
 			getElementsInfo(win, element, elementsInfo);
 			setInfo(win, element, elementsInfo);
@@ -201,8 +203,7 @@ this.docHelper = this.docHelper || (() => {
 		}
 	}
 
-	function markHiddenElements(win, element, imageData) {
-		const elements = Array.from(element.childNodes).filter(node => node.nodeType == win.Node.ELEMENT_NODE);
+	function markHiddenElements(element, imageData) {
 		if (element.getAttribute(REMOVED_CONTENT_ATTRIBUTE_NAME) == "") {
 			element.removeAttribute(REMOVED_CONTENT_ATTRIBUTE_NAME);
 			if (element.tagName == "IMG") {
@@ -212,7 +213,7 @@ this.docHelper = this.docHelper || (() => {
 				}
 			}
 		} else {
-			elements.forEach(element => markHiddenElements(win, element, imageData));
+			Array.from(element.childNodes).filter(node => node.nodeType == 1).forEach(element => markHiddenElements(element, imageData));
 		}
 	}