Parcourir la source

renamed docHelper.getParser

Gildas il y a 7 ans
Parent
commit
a8065b9139
2 fichiers modifiés avec 12 ajouts et 17 suppressions
  1. 4 4
      lib/single-file/single-file-browser.js
  2. 8 13
      lib/single-file/single-file-core.js

+ 4 - 4
lib/single-file/single-file-browser.js

@@ -198,8 +198,8 @@ this.SingleFileBrowser = this.SingleFileBrowser || (() => {
 			return this.parseURL(resourceURL, baseURI).href;
 		}
 
-		static createDoc(pageContent, baseURI) {
-			const doc = (new DOMParser()).parseFromString(pageContent, "text/html");
+		static parseDocContent(content, baseURI) {
+			const doc = (new DOMParser()).parseFromString(content, "text/html");
 			let baseElement = doc.querySelector("base");
 			if (!baseElement || !baseElement.getAttribute("href")) {
 				if (baseElement) {
@@ -212,8 +212,8 @@ this.SingleFileBrowser = this.SingleFileBrowser || (() => {
 			return doc;
 		}
 
-		static getParser() {
-			return DOMParser;
+		static parseSVGContent(content) {
+			return (new DOMParser()).parseFromString(content, "image/svg+xml");
 		}
 
 		static async digest(algo, text) {

+ 8 - 13
lib/single-file/single-file-core.js

@@ -347,7 +347,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 				content = await DocUtil.getContent(this.baseURI, { asDataURI: false, maxResourceSize: this.options.maxResourceSize, maxResourceSizeEnabled: this.options.maxResourceSizeEnabled, charset });
 				pageContent = content.data;
 			}
-			this.doc = DocUtil.createDoc(pageContent, this.baseURI);
+			this.doc = DocUtil.parseDocContent(pageContent, this.baseURI);
 			if (this.options.saveRawPage) {
 				let charset;
 				this.doc.querySelectorAll("meta[charset], meta[http-equiv=\"content-type\"]").forEach(element => {
@@ -1429,18 +1429,13 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 					if (Util.testValidURL(resourceURL, baseURI, options.url)) {
 						try {
 							const { content } = await batchRequest.addURL(resourceURL);
-							const DOMParser = DocUtil.getParser();
-							if (DOMParser) {
-								const svgDoc = new DOMParser().parseFromString(content, "image/svg+xml");
-								const hashMatch = originalResourceURL.match(REGEXP_URL_HASH);
-								if (hashMatch && hashMatch[0]) {
-									const symbolElement = svgDoc.querySelector(hashMatch[0]);
-									if (symbolElement) {
-										resourceElement.setAttribute(attributeName, hashMatch[0]);
-										resourceElement.parentElement.insertBefore(symbolElement, resourceElement.parentElement.firstChild);
-									}
-								} else {
-									resourceElement.setAttribute(attributeName, PREFIX_DATA_URI_IMAGE_SVG + "," + content);
+							const hashMatch = originalResourceURL.match(REGEXP_URL_HASH);
+							if (hashMatch && hashMatch[0]) {
+								const svgDoc = DocUtil.parseSVGContent(content);
+								const symbolElement = svgDoc.querySelector(hashMatch[0]);
+								if (symbolElement) {
+									resourceElement.setAttribute(attributeName, hashMatch[0]);
+									resourceElement.parentElement.insertBefore(symbolElement, resourceElement.parentElement.firstChild);
 								}
 							} else {
 								resourceElement.setAttribute(attributeName, PREFIX_DATA_URI_IMAGE_SVG + "," + content);