From d626ad2e90f0553188d810d9197456fcf288cdba Mon Sep 17 00:00:00 2001 From: Concept Agent Date: Thu, 21 May 2026 21:15:01 +0200 Subject: [PATCH] fix: wrap component injection in DOMContentLoaded guard Cloudflare's email decode script was injecting into and causing components.js to run before site-nav/site-footer elements existed in the DOM, leaving nav and footer blank on cPanel deployment. Co-Authored-By: Claude Sonnet 4.6 --- assets/js/components.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/assets/js/components.js b/assets/js/components.js index 7944171..b0ec378 100644 --- a/assets/js/components.js +++ b/assets/js/components.js @@ -135,10 +135,17 @@ `; - var navEl = document.getElementById('site-nav'); - var footerEl = document.getElementById('site-footer'); - var processEl = document.getElementById('site-process'); - if (navEl) navEl.innerHTML = NAV; - if (footerEl) footerEl.innerHTML = FOOTER; - if (processEl) processEl.outerHTML = PROCESS; + function inject() { + var navEl = document.getElementById('site-nav'); + var footerEl = document.getElementById('site-footer'); + var processEl = document.getElementById('site-process'); + if (navEl) navEl.innerHTML = NAV; + if (footerEl) footerEl.innerHTML = FOOTER; + if (processEl) processEl.outerHTML = PROCESS; + } + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', inject); + } else { + inject(); + } })();