MediaWiki:Common.js: Difference between revisions
No edit summary |
No edit summary |
||
| Line 222: | Line 222: | ||
} | } | ||
// MW hook fires when page content is ready | // MW hook fires when page content is ready (including after MW re-renders) | ||
var hooked = false; | |||
if (window.mw) { | if (window.mw) { | ||
mw.hook('wikipage.content').add(function () { | mw.hook('wikipage.content').add(function () { | ||
var oldBar = document.querySelector('.gr-script-bar'); | var oldBar = document.querySelector('.gr-script-bar'); | ||
if (oldBar) oldBar.remove(); | if (oldBar) oldBar.remove(); | ||
setTimeout(init, 100); | if (!hooked) { | ||
// First run — tag nodes and build everything | |||
hooked = true; | |||
translatableSpans = []; | |||
setTimeout(init, 100); | |||
} else { | |||
// Subsequent MW re-renders — nodes are already tagged, | |||
// just rebuild the bar and re-attach the TOC observer | |||
setTimeout(function () { | |||
buildBar(); | |||
watchTocActive(); | |||
}, 100); | |||
} | |||
}); | }); | ||
} | } | ||