diff --git a/public/assets/js/$.js b/public/assets/js/$.js index ecbe06a3..5cb302e3 100644 --- a/public/assets/js/$.js +++ b/public/assets/js/$.js @@ -10,6 +10,7 @@ document.addEventListener('DOMContentLoaded', () => { if (!refreshIcon || !fullscreenIcon || !backIcon || !forwardIcon || !iframe) return; let loadingHidden = false; let hideTimeout; + let duckLoadCount = 0; function showLoadingScreen(withToast = true, showEruda = false) { clearTimeout(hideTimeout) @@ -120,24 +121,30 @@ document.addEventListener('DOMContentLoaded', () => { lockIcon.style.color = ''; } } +iframe.addEventListener('loadstart', () => { + const url = iframe.src; + const isDuck = url.includes('duckduckgo.com/search'); - iframe.addEventListener('loadstart', (e) => { - const newUrl = e.target.src || iframe.src; - if (newUrl.includes('duckduckgo.com/search')) { - return; + if (isDuck) { + if (duckLoadCount >= 1) { + return; } + duckLoadCount++; + } - if (navbarToggle && navbarToggle.checked && navBar) { - navBar.style.display = 'block'; - } - showLoadingScreen(false, false); - }); + if (navbarToggle && navbarToggle.checked && navBar) { + navBar.style.display = 'block'; + } + showLoadingScreen(false, false); +}); + iframe.addEventListener('load', () => { try { hideLoadingScreen(); } catch (error) { console.error('Error during iframe load:', error); + duckLoadCount = 0; hideLoadingScreen(); } finally { if (erudaLoadingScreen) erudaLoadingScreen.style.display = 'none';