Răsfoiți Sursa

replace sprites only if the URL is external (fix #764)

Gildas 4 ani în urmă
părinte
comite
3e1b8c3999
1 a modificat fișierele cu 10 adăugiri și 15 ștergeri
  1. 10 15
      lib/single-file/single-file-core.js

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

@@ -1909,24 +1909,19 @@ class ProcessorHelper {
 					// ignored
 				}
 				if (testValidURL(resourceURL)) {
-					let svgDoc;
-					if (!originalResourceURL.startsWith(baseURI + "#")) {
-						const response = await batchRequest.addURL(resourceURL);
-						svgDoc = util.parseSVGContent(response.content);
-					} else {
-						svgDoc = doc;
-					}
 					const hashMatch = originalResourceURL.match(REGEXP_URL_HASH);
 					if (hashMatch && hashMatch[0]) {
-						let symbolElement;
-						try {
-							symbolElement = svgDoc.querySelector(hashMatch[0]);
-						} catch (error) {
-							// ignored
-						}
-						if (symbolElement) {
+						if (originalResourceURL.startsWith(baseURI + "#")) {
 							resourceElement.setAttribute(attributeName, hashMatch[0]);
-							resourceElement.parentElement.insertBefore(symbolElement, resourceElement.parentElement.firstChild);
+						} else {
+							const response = await batchRequest.addURL(resourceURL);
+							const svgDoc = util.parseSVGContent(response.content);
+							try {
+								const symbolElement = svgDoc.querySelector(hashMatch[0]);
+								resourceElement.parentElement.replaceChild(symbolElement, resourceElement);
+							} catch (error) {
+								// ignored
+							}
 						}
 					} else {
 						const content = await batchRequest.addURL(resourceURL);