Bladeren bron

fixed issue with self closing tags found in regexp when replacing scripts

Gildas 7 jaren geleden
bovenliggende
commit
389d85ba25
1 gewijzigde bestanden met toevoegingen van 15 en 1 verwijderingen
  1. 15 1
      lib/single-file/single-file-core.js

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

@@ -883,7 +883,21 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 				if (scriptElement.src) {
 					this.stats.add("processed", "scripts", 1);
 					const content = await DocUtil.getContent(scriptElement.src, { asDataURI: false, maxResourceSize: this.options.maxResourceSize, maxResourceSizeEnabled: this.options.maxResourceSizeEnabled });
-					scriptElement.textContent = content.data.replace(/<\//gi, "<\\/").replace(/\/>/gi, "\\/>");
+					let scriptContent = content.data.replace(/<\//gi, "<\\/");
+					try {
+						new Function(scriptContent);
+					} catch (error) {
+						scriptContent = content.data.replace(/<\//gi, "<\\\\/");
+					}
+					try {
+						new Function(scriptContent);
+						scriptContent = scriptContent.replace(/\/>/gi, "\\/>");
+					} catch (error) {
+						// ignored
+					}
+					if (scriptContent) {
+						scriptElement.textContent = scriptContent;
+					}
 				}
 				scriptElement.removeAttribute("src");
 			}));