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 } );
    }
   }
   }