|
|
@@ -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");
|
|
|
}));
|