From 5f63ecb33620234aca0e357ffd2a0a2f69d60d89 Mon Sep 17 00:00:00 2001 From: Serraniel Date: Tue, 4 Aug 2020 11:36:17 +0200 Subject: [PATCH] #23 Run script directly if page already loaded (cherry picked from commit 8460c862e97866e43e06e7624b2ce4f38d0ecd0d) --- utils/aniwatchCore.js | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/utils/aniwatchCore.js b/utils/aniwatchCore.js index 4552c98..1a6d3b1 100644 --- a/utils/aniwatchCore.js +++ b/utils/aniwatchCore.js @@ -27,16 +27,33 @@ observer.observe(document.documentElement || document.body, { attributes: true }); +function findPreloader() { + return document.getElementById('preloader'); +} + function runAfterLoad(func, pattern = '.*') { - __afterLoadScripts.push({ "function": func, "pattern": pattern }); + if (findPreloader()) { + __afterLoadScripts.push({ "function": func, "pattern": pattern }); + } else { + func(); + } } document.addEventListener("DOMContentLoaded", event => awaitPageLoaded(), false); function awaitPageLoaded() { - let preLoader = document.getElementById('preloader'); + let preLoader = findPreloader(); + + let runScripts = () => { + __afterLoadScripts.forEach(script => { + if (window.location.pathname.match(script.pattern)) { + script.function(); + } + }); + }; if (typeof preLoader === 'undefined') { + runScripts(); return; } @@ -44,11 +61,7 @@ function awaitPageLoaded() { if (preLoader.style.display === "none") { clearInterval(loop); - __afterLoadScripts.forEach(script => { - if (window.location.pathname.match(script.pattern)) { - script.function(); - } - }) + runScripts(); } }, 100); } \ No newline at end of file