|
@@ -31,6 +31,7 @@ this.singlefile.lib.helper = this.singlefile.lib.helper || (() => {
|
|
|
const ON_AFTER_CAPTURE_EVENT_NAME = "single-file-on-after-capture";
|
|
const ON_AFTER_CAPTURE_EVENT_NAME = "single-file-on-after-capture";
|
|
|
const REMOVED_CONTENT_ATTRIBUTE_NAME = "data-single-file-removed-content";
|
|
const REMOVED_CONTENT_ATTRIBUTE_NAME = "data-single-file-removed-content";
|
|
|
const HIDDEN_CONTENT_ATTRIBUTE_NAME = "data-single-file-hidden-content";
|
|
const HIDDEN_CONTENT_ATTRIBUTE_NAME = "data-single-file-hidden-content";
|
|
|
|
|
+ const HIDDEN_FRAME_ATTRIBUTE_NAME = "data-single-file-hidden-frame";
|
|
|
const PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME = "data-single-file-preserved-space-element";
|
|
const PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME = "data-single-file-preserved-space-element";
|
|
|
const SHADOW_ROOT_ATTRIBUTE_NAME = "data-single-file-shadow-root-element";
|
|
const SHADOW_ROOT_ATTRIBUTE_NAME = "data-single-file-shadow-root-element";
|
|
|
const WIN_ID_ATTRIBUTE_NAME = "data-single-file-win-id";
|
|
const WIN_ID_ATTRIBUTE_NAME = "data-single-file-win-id";
|
|
@@ -73,6 +74,7 @@ this.singlefile.lib.helper = this.singlefile.lib.helper || (() => {
|
|
|
PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME,
|
|
PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME,
|
|
|
REMOVED_CONTENT_ATTRIBUTE_NAME,
|
|
REMOVED_CONTENT_ATTRIBUTE_NAME,
|
|
|
HIDDEN_CONTENT_ATTRIBUTE_NAME,
|
|
HIDDEN_CONTENT_ATTRIBUTE_NAME,
|
|
|
|
|
+ HIDDEN_FRAME_ATTRIBUTE_NAME,
|
|
|
IMAGE_ATTRIBUTE_NAME,
|
|
IMAGE_ATTRIBUTE_NAME,
|
|
|
POSTER_ATTRIBUTE_NAME,
|
|
POSTER_ATTRIBUTE_NAME,
|
|
|
CANVAS_ATTRIBUTE_NAME,
|
|
CANVAS_ATTRIBUTE_NAME,
|
|
@@ -242,8 +244,9 @@ this.singlefile.lib.helper = this.singlefile.lib.helper || (() => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if (element.tagName == "IFRAME") {
|
|
if (element.tagName == "IFRAME") {
|
|
|
- if (elementHidden) {
|
|
|
|
|
- element.setAttribute("src", "data:text/html,");
|
|
|
|
|
|
|
+ if (elementHidden && options.removeHiddenElements) {
|
|
|
|
|
+ element.setAttribute(HIDDEN_FRAME_ATTRIBUTE_NAME, "");
|
|
|
|
|
+ data.markedElements.push(element);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if (element.tagName == "LINK") {
|
|
if (element.tagName == "LINK") {
|
|
@@ -336,12 +339,13 @@ this.singlefile.lib.helper = this.singlefile.lib.helper || (() => {
|
|
|
doc.head.querySelectorAll("*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)").forEach(element => element.removeAttribute("hidden"));
|
|
doc.head.querySelectorAll("*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)").forEach(element => element.removeAttribute("hidden"));
|
|
|
}
|
|
}
|
|
|
if (!markedElements) {
|
|
if (!markedElements) {
|
|
|
- const singleFileAttributes = [REMOVED_CONTENT_ATTRIBUTE_NAME, HIDDEN_CONTENT_ATTRIBUTE_NAME, PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME, IMAGE_ATTRIBUTE_NAME, POSTER_ATTRIBUTE_NAME, CANVAS_ATTRIBUTE_NAME, INPUT_VALUE_ATTRIBUTE_NAME, SHADOW_ROOT_ATTRIBUTE_NAME, HTML_IMPORT_ATTRIBUTE_NAME, STYLESHEET_ATTRIBUTE_NAME, ASYNC_SCRIPT_ATTRIBUTE_NAME];
|
|
|
|
|
|
|
+ const singleFileAttributes = [REMOVED_CONTENT_ATTRIBUTE_NAME, HIDDEN_FRAME_ATTRIBUTE_NAME, HIDDEN_CONTENT_ATTRIBUTE_NAME, PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME, IMAGE_ATTRIBUTE_NAME, POSTER_ATTRIBUTE_NAME, CANVAS_ATTRIBUTE_NAME, INPUT_VALUE_ATTRIBUTE_NAME, SHADOW_ROOT_ATTRIBUTE_NAME, HTML_IMPORT_ATTRIBUTE_NAME, STYLESHEET_ATTRIBUTE_NAME, ASYNC_SCRIPT_ATTRIBUTE_NAME];
|
|
|
markedElements = doc.querySelectorAll(singleFileAttributes.map(name => "[" + name + "]").join(","));
|
|
markedElements = doc.querySelectorAll(singleFileAttributes.map(name => "[" + name + "]").join(","));
|
|
|
}
|
|
}
|
|
|
markedElements.forEach(element => {
|
|
markedElements.forEach(element => {
|
|
|
element.removeAttribute(REMOVED_CONTENT_ATTRIBUTE_NAME);
|
|
element.removeAttribute(REMOVED_CONTENT_ATTRIBUTE_NAME);
|
|
|
element.removeAttribute(HIDDEN_CONTENT_ATTRIBUTE_NAME);
|
|
element.removeAttribute(HIDDEN_CONTENT_ATTRIBUTE_NAME);
|
|
|
|
|
+ element.removeAttribute(HIDDEN_FRAME_ATTRIBUTE_NAME);
|
|
|
element.removeAttribute(PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME);
|
|
element.removeAttribute(PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME);
|
|
|
element.removeAttribute(IMAGE_ATTRIBUTE_NAME);
|
|
element.removeAttribute(IMAGE_ATTRIBUTE_NAME);
|
|
|
element.removeAttribute(POSTER_ATTRIBUTE_NAME);
|
|
element.removeAttribute(POSTER_ATTRIBUTE_NAME);
|