From 430560cfc1722cf781244278924484e02c9c6374 Mon Sep 17 00:00:00 2001 From: Amit Rana Date: Wed, 15 Apr 2026 09:42:50 +0530 Subject: [PATCH] headerjs and favicon fix --- header.js | 69 ++++++++++++++++++++++++--------------- img/apple-touch-icon.png | Bin 0 -> 14222 bytes img/favicon-16x16.png | Bin 0 -> 1701 bytes img/favicon-32x32.png | Bin 0 -> 2412 bytes img/favicon.ico | Bin 0 -> 15086 bytes 5 files changed, 42 insertions(+), 27 deletions(-) create mode 100644 img/apple-touch-icon.png create mode 100644 img/favicon-16x16.png create mode 100644 img/favicon-32x32.png create mode 100644 img/favicon.ico diff --git a/header.js b/header.js index 08dce1e..28481e2 100644 --- a/header.js +++ b/header.js @@ -10,16 +10,13 @@ if (document.getElementById('sh-header')) return; // ─── Config: update nav links here ────────────────────────────── - var LOGO_URL = (function() { - // Works locally and on live domain without hardcoding - var base = window.location.origin; - return base + '/img/logo.png'; - })(); - var HOME_URL = 'https://quantumtaskai.com'; + var LOGO_URL = 'https://quantumtaskai.com/img/logo.png'; // always absolute — works cross-domain + var HOME_URL = 'https://quantumtaskai.com'; var NAV_LINKS = [ { label: 'Home', url: 'https://quantumtaskai.com' }, { label: 'AI Digital Branding', url: 'https://quantumtaskai.com/digital-branding.html' }, + { label: 'Site Auditor', url: 'https://audit.quantumtaskai.com' }, { label: 'Blog', url: 'https://blog.quantumtaskai.com/' }, ]; @@ -139,13 +136,21 @@ document.head.appendChild(styleEl); // ─── Detect active link ────────────────────────────────────────── - var currentUrl = window.location.href; + var currentOrigin = window.location.origin; // e.g. https://blog.quantumtaskai.com + var currentUrl = window.location.href; function isActive(url) { - if (url === HOME_URL) { - return currentUrl === url || currentUrl === url + '/' || currentUrl === url + '/index.html'; - } - return currentUrl.indexOf(url) === 0; + try { + var linkOrigin = new URL(url).origin; + // If the link is a subdomain root (e.g. https://blog.quantumtaskai.com/) + // match by origin so any page on that subdomain highlights it + if (linkOrigin !== HOME_URL && linkOrigin === currentOrigin) return true; + // For same-domain links match by full URL prefix + if (url === HOME_URL || url === HOME_URL + '/') { + return currentOrigin === HOME_URL; + } + return currentUrl.indexOf(url) === 0; + } catch (e) { return false; } } function buildNavItems() { @@ -160,12 +165,12 @@ '
' + '
' + '' + '' + - '
'; // ─── Inject header at top of body ─────────────────────────────── - document.body.insertAdjacentHTML('afterbegin', headerHTML); + // Guard: if script runs before exists (e.g. loaded from ), + // wait for DOM ready instead of crashing + function inject() { + if (document.body) { + document.body.insertAdjacentHTML('afterbegin', headerHTML); + } + } + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', inject); + } else { + inject(); + } // ─── Hamburger logic ───────────────────────────────────────────── var burger = document.getElementById('sh-burger'); var nav = document.getElementById('sh-nav'); + // Guard: bail out cleanly if injection failed for any reason + if (!burger || !nav) return; + + function closeMenu() { + nav.classList.remove('sh-open'); + burger.setAttribute('aria-expanded', 'false'); // always string + } + burger.addEventListener('click', function () { var open = nav.classList.toggle('sh-open'); - burger.setAttribute('aria-expanded', open); + burger.setAttribute('aria-expanded', String(open)); // string 'true'/'false' }); document.addEventListener('click', function (e) { - if (!document.getElementById('sh-header').contains(e.target)) { - nav.classList.remove('sh-open'); - burger.setAttribute('aria-expanded', 'false'); - } + if (!document.getElementById('sh-header').contains(e.target)) closeMenu(); }); document.addEventListener('keydown', function (e) { - if (e.key === 'Escape') { - nav.classList.remove('sh-open'); - burger.setAttribute('aria-expanded', 'false'); - } + if (e.key === 'Escape') closeMenu(); }); nav.querySelectorAll('a').forEach(function (a) { - a.addEventListener('click', function () { - nav.classList.remove('sh-open'); - burger.setAttribute('aria-expanded', 'false'); - }); + a.addEventListener('click', closeMenu); }); console.log('Shared header loaded ✓'); diff --git a/img/apple-touch-icon.png b/img/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ba06a51222b181517d1819cdd5fdad0bab0d12d6 GIT binary patch literal 14222 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�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 nnY;sdFYsXGY-8qXWp6004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0004NP)t-s|NsB}{r>aw_Wb<) z`}_Ro=kCYH*gigZt*yrT`uy73`HbpG{4I0Rc--PlNFA^!fSwzP{4$@ATs0>i_^nOG|)PSBY(H znNLrI7#Ll!u*l)z>NPcTtgOYLpuAjMjfI7&R8)vVLwhVNYeYnRb90@-!qoHg_qw{z zzrWH(Mt)^wlT}rSPELa`Fm4wYT)DZ+#Oc-D_)?Q&WZm156GMR!~rcv$M)qSBl===%Jy#n3%U69bo_fN&*5* zii)lH`1Q-|&C^2y2Bhli_@lCtUP@aE?2{r&y)%s4p!0004EOGiWi zhy@);00009a7bBm000id000id0mpBsWB>pF2XskIMF;8x4+IM);26+20009qdQ@0+ zQek%>aB^>EX>4U6ba`-PAb4$X002mdomN}6qd*A!XBD%A7HH7r7$1Lg&V0`Dr>c!n z@AbYWIhrUm6j0DDe}DgxU-)#|Rk6v|?6X7{7LTauT0)~n#t@6mn#=llJXTG-AHw;j zrd6M<_?*QJx_u1deU6ER)pGQudf*oZ&9F$*R$IzwQ}#AyA6OVOokgdG&oRZ4Mw!q9 z(0HuGVdExvsRPN=ltL$Ltm^LZ#tdWvAx-t^_!b+nbj|kBC84EDtWZo{t+Rn&{41uo zEAI2=Kxauy`P16h09Mk!f=I6}Wc| zEewRdN8em8(aE7iV^2Q|D!9fBHDnKp2ul|$d&cO>ri+77ys7Tub1)T!&F+w#Wk5R| zVUaw7Xt1DqB63uXEYX$?hO0nU4-~t(D;8(oDsqH?Du}iq%czD`1=S$q-E7kJZrQPF zcOkbvD!A@GH1kMN;~CL~p|bc<>sfNcTU>CB(7@rID6mMu5{JOJ&?*sO>3d8kH%G{F zg9px@XevX+6}S%|q~l8bt8iYfF66rOv!tRAQ2^lWU!`GQpXTIq#dGO(Js1B>7)s=h zGdFoTvF&W~XdF3r&d)pSXfXMx!=Pw4bD=bvPRC539_}FI1Y%+Oa00x#s=IboGddCv zuIZe+13PN@8qW6A#S%%JZRC*K0ghK%5PGhB=o%)V(^5H|Fu}EW=P>0HGLx~w z4WwYxO$FtBajzIDxex7HJ-MsO|5Q)DnvWo+-_7-XGVa@k9Mf=H@~oR(>-IFqvCBEy zv-q|+S=1w+gH5s&zs|xb2@I!Pw*+}*VKa9gr3i}?0pAJv zu*S6DX01KvI>^Z=IN?=7Lg4VE#J#J=cE z4Qyp9jrNGUjeT;MX!NwVl{V&ie3-V850}|cSLV>?AYrStMSSG)cC6uX27Uc%j8?lZ z0&gwyy&|8rwiC(gZ9DSF`OLG4ZVp~`3m;vt+nGuJ0dnX+cTNt5rvLx|wn;=mR2b7^ zV88(wnV6AyEUe6I>>R9|Z~-oE9yVS+egQ!+Pe@oqR7_k#Qc7AzRt_W}ub`;JB%!RL zs-~`?3DKdYt)r`_Z(wL-Yy#$*n(3HJSy)C?MoLyYq+&w(KfCAnO zKEl3!{sFFm20_6gU^7C)m>ELD10o`$qGKSY#>Sb&CnN?3CnYOE1X5Dd(lau%vU75w zF3rm?C@d;2DJ?_zMyR|3m$w0v4j(=$kN<=K000nlMObujWM(=+b#!QNasWYMXkmGt zcgjlu004P(MOburZE!k6a%Ew3Z*o*`Z)^ZVVQzL|AShC0Ze(S0WpXJXWN%|VL_tSx zV@54=c{W8Lb#rBMJyk(NWjAe6bxtisAYyW1Ze%?&H6To7VRCLRV{dIBbY*RDY+-a| vJx6k7Wo{r%Z)9b1ZXiuza%*LDX>MmAOmAmz5!bc;00000NkvXXu0mjf6=N67 literal 0 HcmV?d00001 diff --git a/img/favicon-32x32.png b/img/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa40661f37c04c8d12dd5bef3e08c83067ea1b1 GIT binary patch literal 2412 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