"; var attrs = tempDiv.firstChild.attributes; for (var i = 0; i < attrs.length; i++) { if (attrs[i].name !== "src") { script.setAttribute(attrs[i].name, attrs[i].value); } } script.onload = function() { console.log("Loaded: " + scriptInfo.src); loadExternalScript(index + 1); }; script.onerror = function() { console.error("Failed to load: " + scriptInfo.src); loadExternalScript(index + 1); }; document.body.appendChild(script); } // Выполняем inline скрипты function executeInlineScripts() { Object.keys(scriptsData).forEach(function(index) { var scriptInfo = scriptsData[index]; if (scriptInfo.type === "inline") { try { var script = document.createElement("script"); script.textContent = scriptInfo.content; // Добавляем атрибуты если есть if (scriptInfo.attrs) { var tempDiv = document.createElement("div"); tempDiv.innerHTML = ""; var attrs = tempDiv.firstChild.attributes; for (var i = 0; i < attrs.length; i++) { script.setAttribute(attrs[i].name, attrs[i].value); } } document.body.appendChild(script); console.log("Executed inline script #" + index); } catch (e) { console.error("Error executing inline script:", e); } } }); console.log("All scripts activated!"); document.dispatchEvent(new Event("scriptsActivated")); } // Начинаем загрузку if (externalScripts.length > 0) { loadExternalScript(0); } else { executeInlineScripts(); } } // Ждем полной загрузки страницы if (document.readyState === "complete") { setTimeout(activateDelayedScripts, activationDelay); } else { window.addEventListener("load", function() { setTimeout(activateDelayedScripts, activationDelay); }); } // Альтернативный триггер - когда все ресурсы загружены var checkInterval = setInterval(function() { var images = document.querySelectorAll("img"); var allLoaded = true; for (var i = 0; i < images.length; i++) { if (!images[i].complete || images[i].naturalHeight === 0) { allLoaded = false; break; } } if (allLoaded && document.readyState === "complete") { clearInterval(checkInterval); setTimeout(activateDelayedScripts, 100); } }, 500); // API для ручной активации window.activateScriptsNow = function() { clearInterval(checkInterval); activateDelayedScripts(); }; })();
Загрузка скриптов...