|
|
@@ -876,31 +876,19 @@ this.SingleFileCore = this.SingleFileCore || (() => {
|
|
|
async processScripts() {
|
|
|
await Promise.all(Array.from(this.doc.querySelectorAll("script[src]")).map(async scriptElement => {
|
|
|
let resourceURL;
|
|
|
+ const scriptSrc = scriptElement.getAttribute("src");
|
|
|
+ scriptElement.removeAttribute("src");
|
|
|
+ scriptElement.textContent = "";
|
|
|
try {
|
|
|
- resourceURL = DocUtil.resolveURL(scriptElement.src, this.baseURI);
|
|
|
+ resourceURL = DocUtil.resolveURL(scriptSrc, this.baseURI);
|
|
|
} catch (error) {
|
|
|
// ignored
|
|
|
}
|
|
|
if (Util.testValidURL(resourceURL, this.baseURI, this.options.url)) {
|
|
|
this.stats.add("processed", "scripts", 1);
|
|
|
- const content = await DocUtil.getContent(scriptElement.src, { asDataURI: false, maxResourceSize: this.options.maxResourceSize, maxResourceSizeEnabled: this.options.maxResourceSizeEnabled });
|
|
|
- let scriptContent = content.data.replace(/<\//gi, "<\\/");
|
|
|
- try {
|
|
|
- Function(scriptContent);
|
|
|
- } catch (error) {
|
|
|
- scriptContent = content.data.replace(/<\//gi, "<\\\\/");
|
|
|
- }
|
|
|
- try {
|
|
|
- Function(scriptContent);
|
|
|
- scriptContent = scriptContent.replace(/\/>/gi, "\\/>");
|
|
|
- } catch (error) {
|
|
|
- // ignored
|
|
|
- }
|
|
|
- if (scriptContent) {
|
|
|
- scriptElement.textContent = scriptContent;
|
|
|
- }
|
|
|
+ const content = await DocUtil.getContent(resourceURL, { asDataURI: true, maxResourceSize: this.options.maxResourceSize, maxResourceSizeEnabled: this.options.maxResourceSizeEnabled });
|
|
|
+ scriptElement.setAttribute("src", content.data);
|
|
|
}
|
|
|
- scriptElement.removeAttribute("src");
|
|
|
}));
|
|
|
}
|
|
|
|