From bb5074f3e691741faff316ff65ed524210b0836e Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Wed, 6 Mar 2024 11:23:56 +0100 Subject: [PATCH] save --- resources/scripts/builtin_js/observer.js | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 resources/scripts/builtin_js/observer.js diff --git a/resources/scripts/builtin_js/observer.js b/resources/scripts/builtin_js/observer.js new file mode 100644 index 000000000..c7190624e --- /dev/null +++ b/resources/scripts/builtin_js/observer.js @@ -0,0 +1,38 @@ +// Watch entire document and keep date of last DOM change. +const targetNode = document; +const waitTimeMs = 5000; +const idleIdString = "iiddllee"; + +var scrollings = 3; +var lastResourceTime = new Date(); + +// Setup DOM observer and observe for changes in elements only. +const config = { attributes: false, characterData: false, childList: true, subtree: true }; + +const callback = (mutationList, observer) => { + lastResourceTime = new Date(); + console.log("res " + lastResourceTime); +}; + +const observer = new MutationObserver(callback); + +observer.observe(targetNode, config); + +var intervalId = window.setInterval(function () { + var actualTime = new Date(); + + if ((actualTime - lastResourceTime) > waitTimeMs) { + if (scrollings > 0) { + // Just scroll to bottom of current DOM + // to make sure more content is loaded. + scrollings = scrollings - 1; + lastResourceTime = new Date(); + window.scrollTo(0, document.body.scrollHeight); + console.log("scroll"); + } + else { + console.log(idleIdString); + clearInterval(intervalId); + } + } +}, 1100); \ No newline at end of file