MediaWiki:Common.js: Difference between revisions
No edit summary |
No edit summary |
||
| Line 660: | Line 660: | ||
anchors.forEach( function ( span ) { observer.observe( span ); } ); | anchors.forEach( function ( span ) { observer.observe( span ); } ); | ||
// ── Guard: re-inject our TOC if Vector wipes it ─────────────── | |||
// Vector 2022 can replace contents.innerHTML after our build. | |||
// Watch for that and immediately restore our list. | |||
if ( window.MutationObserver ) { | |||
var _reinjecting = false; | |||
var tocGuard = new MutationObserver( function () { | |||
if ( _reinjecting ) return; | |||
// If our list is gone, put it back | |||
if ( !contents.querySelector( '#mw-panel-toc-list' ) ) { | |||
_reinjecting = true; | |||
contents.innerHTML = ''; | |||
var freshUl = buildList( entries ); | |||
freshUl.id = 'mw-panel-toc-list'; | |||
contents.appendChild( freshUl ); | |||
renameTocTitle(); | |||
_reinjecting = false; | |||
} | |||
} ); | |||
tocGuard.observe( contents, { childList: true, subtree: false } ); | |||
} | |||
} | } | ||