diff --git a/frontend/js/textbook-tracker.js b/frontend/js/textbook-tracker.js index 8d94a39..fc0b847 100644 --- a/frontend/js/textbook-tracker.js +++ b/frontend/js/textbook-tracker.js @@ -307,6 +307,17 @@ if (typeof window.setParaTab === 'function' && window.setParaTab.__tbPatched) clearInterval(ivl); if (++tries > 20) clearInterval(ivl); }, 100); + // Hook 4b: боковая панель-справочник в chemistry-9 / physics-9 использует + // .tab[data-tab="refN"] вместо .para-pill. Маппим ref → p и фиксируем. + document.addEventListener('click', e => { + const tab = e.target && e.target.closest && e.target.closest('.tab[data-tab]'); + if (!tab) return; + const m = String(tab.dataset.tab || '').match(/^ref(\d+)$/); + if (!m) return; + const para = 'p' + m[1]; + console.log('[tracker] клик по справ. табу', tab.dataset.tab, '→', para); + recordParaVisit(para); + }, true); // Hook 4: polling — наблюдаем за классом .active на пилюлях. // Если кто-то поменял активный параграф (через клик, через JS вызов // setParaTab, через любой механизм) — мы это поймаем за 500мс и зафиксируем.