|
|
@@ -82,6 +82,9 @@ this.singlefile.top = this.singlefile.top || (() => {
|
|
|
options.selected = false;
|
|
|
}
|
|
|
}
|
|
|
+ if (options.lazyLoadImages) {
|
|
|
+ await lazyLoadResources();
|
|
|
+ }
|
|
|
await processor.initialize();
|
|
|
await processor.preparePageData();
|
|
|
const page = processor.getPageData();
|
|
|
@@ -101,6 +104,21 @@ this.singlefile.top = this.singlefile.top || (() => {
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+ async function lazyLoadResources() {
|
|
|
+ const scriptURL = browser.runtime.getURL("lib/single-file/lazy-loader-before.js");
|
|
|
+ const scriptElement = document.createElement("script");
|
|
|
+ scriptElement.src = scriptURL;
|
|
|
+ document.body.appendChild(scriptElement);
|
|
|
+ const promise = new Promise(resolve => scriptElement.onload = () => setTimeout(() => {
|
|
|
+ const scriptURL = browser.runtime.getURL("lib/single-file/lazy-loader-after.js");
|
|
|
+ const scriptElement = document.createElement("script");
|
|
|
+ scriptElement.src = scriptURL;
|
|
|
+ document.body.appendChild(scriptElement);
|
|
|
+ resolve();
|
|
|
+ }, 100));
|
|
|
+ return promise;
|
|
|
+ }
|
|
|
+
|
|
|
function revokeDownloadURL(page) {
|
|
|
URL.revokeObjectURL(page.url);
|
|
|
}
|