|
@@ -29,7 +29,8 @@
|
|
|
const LOAD_DEFERRED_IMAGES_END_EVENT = "single-file-load-deferred-images-end";
|
|
const LOAD_DEFERRED_IMAGES_END_EVENT = "single-file-load-deferred-images-end";
|
|
|
const LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_START_EVENT = "single-file-load-deferred-images-keep-zoom-level-start";
|
|
const LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_START_EVENT = "single-file-load-deferred-images-keep-zoom-level-start";
|
|
|
const LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-images-keep-zoom-level-end";
|
|
const LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-images-keep-zoom-level-end";
|
|
|
- const LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_END_EVENT = "single-file-load-deferred-images-keep-zoom-level-reset";
|
|
|
|
|
|
|
+ const LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_EVENT = "single-file-load-deferred-images-keep-zoom-level-reset";
|
|
|
|
|
+ const LOAD_DEFERRED_IMAGES_RESET_EVENT = "single-file-load-deferred-images-reset";
|
|
|
const BLOCK_COOKIES_START_EVENT = "single-file-block-cookies-start";
|
|
const BLOCK_COOKIES_START_EVENT = "single-file-block-cookies-start";
|
|
|
const BLOCK_COOKIES_END_EVENT = "single-file-block-cookies-end";
|
|
const BLOCK_COOKIES_END_EVENT = "single-file-block-cookies-end";
|
|
|
const BLOCK_STORAGE_START_EVENT = "single-file-block-storage-start";
|
|
const BLOCK_STORAGE_START_EVENT = "single-file-block-storage-start";
|
|
@@ -183,8 +184,8 @@
|
|
|
|
|
|
|
|
addEventListener(LOAD_DEFERRED_IMAGES_END_EVENT, () => loadDeferredImagesEnd());
|
|
addEventListener(LOAD_DEFERRED_IMAGES_END_EVENT, () => loadDeferredImagesEnd());
|
|
|
addEventListener(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT, () => loadDeferredImagesEnd(true));
|
|
addEventListener(LOAD_DEFERRED_IMAGES_KEEP_ZOOM_LEVEL_END_EVENT, () => loadDeferredImagesEnd(true));
|
|
|
- addEventListener(LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_END_EVENT, () => {
|
|
|
|
|
- const scrollingElement = document.scrollingElement || document.documentElement;
|
|
|
|
|
|
|
+ addEventListener(LOAD_DEFERRED_IMAGES_RESET_EVENT, resetScreenSize);
|
|
|
|
|
+ addEventListener(LOAD_DEFERRED_IMAGES_RESET_ZOOM_LEVEL_EVENT, () => {
|
|
|
const transform = document.documentElement.style.getPropertyValue("-sf-transform");
|
|
const transform = document.documentElement.style.getPropertyValue("-sf-transform");
|
|
|
const transformPriority = document.documentElement.style.getPropertyPriority("-sf-transform");
|
|
const transformPriority = document.documentElement.style.getPropertyPriority("-sf-transform");
|
|
|
const transformOrigin = document.documentElement.style.getPropertyValue("-sf-transform-origin");
|
|
const transformOrigin = document.documentElement.style.getPropertyValue("-sf-transform-origin");
|
|
@@ -197,23 +198,15 @@
|
|
|
document.documentElement.style.removeProperty("-sf-transform");
|
|
document.documentElement.style.removeProperty("-sf-transform");
|
|
|
document.documentElement.style.removeProperty("-sf-transform-origin");
|
|
document.documentElement.style.removeProperty("-sf-transform-origin");
|
|
|
document.documentElement.style.removeProperty("-sf-min-height");
|
|
document.documentElement.style.removeProperty("-sf-min-height");
|
|
|
- delete scrollingElement.clientHeight;
|
|
|
|
|
- delete scrollingElement.clientWidth;
|
|
|
|
|
- delete screen.height;
|
|
|
|
|
- delete screen.width;
|
|
|
|
|
|
|
+ resetScreenSize();
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
function loadDeferredImagesEnd(keepZoomLevel) {
|
|
function loadDeferredImagesEnd(keepZoomLevel) {
|
|
|
- const scrollingElement = document.scrollingElement || document.documentElement;
|
|
|
|
|
document.querySelectorAll("[" + LAZY_LOAD_ATTRIBUTE + "]").forEach(element => {
|
|
document.querySelectorAll("[" + LAZY_LOAD_ATTRIBUTE + "]").forEach(element => {
|
|
|
element.loading = "lazy";
|
|
element.loading = "lazy";
|
|
|
element.removeAttribute(LAZY_LOAD_ATTRIBUTE);
|
|
element.removeAttribute(LAZY_LOAD_ATTRIBUTE);
|
|
|
});
|
|
});
|
|
|
if (!keepZoomLevel) {
|
|
if (!keepZoomLevel) {
|
|
|
- delete scrollingElement.clientHeight;
|
|
|
|
|
- delete scrollingElement.clientWidth;
|
|
|
|
|
- delete screen.height;
|
|
|
|
|
- delete screen.width;
|
|
|
|
|
if (window._singleFile_getBoundingClientRect) {
|
|
if (window._singleFile_getBoundingClientRect) {
|
|
|
Element.prototype.getBoundingClientRect = window._singleFile_getBoundingClientRect;
|
|
Element.prototype.getBoundingClientRect = window._singleFile_getBoundingClientRect;
|
|
|
window.innerHeight = window._singleFile_innerHeight;
|
|
window.innerHeight = window._singleFile_innerHeight;
|
|
@@ -233,6 +226,14 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ function resetScreenSize() {
|
|
|
|
|
+ const scrollingElement = document.scrollingElement || document.documentElement;
|
|
|
|
|
+ delete scrollingElement.clientHeight;
|
|
|
|
|
+ delete scrollingElement.clientWidth;
|
|
|
|
|
+ delete screen.height;
|
|
|
|
|
+ delete screen.width;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
addEventListener(BLOCK_COOKIES_START_EVENT, () => {
|
|
addEventListener(BLOCK_COOKIES_START_EVENT, () => {
|
|
|
try {
|
|
try {
|
|
|
document.__defineGetter__("cookie", () => { throw new Error("document.cookie temporary blocked by SingleFile"); });
|
|
document.__defineGetter__("cookie", () => { throw new Error("document.cookie temporary blocked by SingleFile"); });
|