fix(tracker): хук на боковую панель-справочник (.tab[data-tab=refN])
Chemistry-9 и physics-9 имеют ДВА навигатора: 1. .para-pill[data-para=pN] — верхние пилюли с большими карточками 2. .tab[data-tab=refN] — sidebar-справочник, тонкие строки слева Ученик кликал именно по второму (§46 Mg и ЩЗМ), но tracker ловил только первый. Маппинг ref<N> → p<N> по регексу. Capture-фаза, чтобы не зависеть от bubble.
This commit is contained in:
@@ -307,6 +307,17 @@
|
|||||||
if (typeof window.setParaTab === 'function' && window.setParaTab.__tbPatched) clearInterval(ivl);
|
if (typeof window.setParaTab === 'function' && window.setParaTab.__tbPatched) clearInterval(ivl);
|
||||||
if (++tries > 20) clearInterval(ivl);
|
if (++tries > 20) clearInterval(ivl);
|
||||||
}, 100);
|
}, 100);
|
||||||
|
// Hook 4b: боковая панель-справочник в chemistry-9 / physics-9 использует
|
||||||
|
// .tab[data-tab="refN"] вместо .para-pill. Маппим ref<N> → p<N> и фиксируем.
|
||||||
|
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 на пилюлях.
|
// Hook 4: polling — наблюдаем за классом .active на пилюлях.
|
||||||
// Если кто-то поменял активный параграф (через клик, через JS вызов
|
// Если кто-то поменял активный параграф (через клик, через JS вызов
|
||||||
// setParaTab, через любой механизм) — мы это поймаем за 500мс и зафиксируем.
|
// setParaTab, через любой механизм) — мы это поймаем за 500мс и зафиксируем.
|
||||||
|
|||||||
Reference in New Issue
Block a user