Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
Created page with "Any JavaScript here will be loaded for all users on every page load.: mw.hook('wikipage.content').add(function ($content) { var box = $content.find('[data-stato-archivio="1"]').first(); if (!box.length) return; // Target: TOC a destra su Vector 2022 (rail del TOC) var target = document.querySelector('.vector-toc') || document.querySelector('.mw-table-of-contents') || document.querySelector('#toc'); if (!target) return; // Se #toc è dentr..."
 
No edit summary
Line 2: Line 2:


mw.hook('wikipage.content').add(function ($content) {
mw.hook('wikipage.content').add(function ($content) {
   var box = $content.find('[data-stato-archivio="1"]').first();
  // 1) trova il box nel contenuto
   if (!box.length) return;
   var $box = $content.find('[data-stato-archivio="1"]').first();
   if (!$box.length) return;


   // Target: TOC a destra su Vector 2022 (rail del TOC)
   // 2) trova l'area TOC di Citizen
   var target =
  // Citizen usa comunemente .citizen-toc per il blocco del ToC (sidebar/rail)
     document.querySelector('.vector-toc') ||
   var tocContainer =
     document.querySelector('.mw-table-of-contents') ||
     document.querySelector('.citizen-toc') ||
     document.querySelector('#toc');
     document.querySelector('#citizen-toc') ||
     document.querySelector('#toc'); // fallback estremo


   if (!target) return;
   if (!tocContainer) return;


   // Se #toc è dentro un wrapper, proviamo a inserire prima del wrapper
   // 3) inserisci il box sopra al contenuto del TOC
   var insertBeforeNode = target;
  // se esiste un contenitore interno, mettiamo il box prima della lista
   var inner =
    tocContainer.querySelector('.citizen-toc-contents') ||
    tocContainer.querySelector('.toc') ||
    tocContainer;


   // Per Vector 2022: spesso .vector-toc è il contenitore; inseriamo come primo elemento
   inner.parentNode.insertBefore($box[0], inner);
  if (target.classList && target.classList.contains('vector-toc')) {
    target.prepend(box[0]);
  } else {
    // per vecchi skin: inseriamo prima del toc
    target.parentNode.insertBefore(box[0], insertBeforeNode);
  }


   // Aggiusta margini nel rail
   // 4) margini “da widget” nella rail
   box[0].style.margin = '0 0 12px 0';
   $box[0].style.margin = '0 0 12px 0';
});
});

Revision as of 21:06, 29 December 2025

/* Any JavaScript here will be loaded for all users on every page load. */

mw.hook('wikipage.content').add(function ($content) {
  // 1) trova il box nel contenuto
  var $box = $content.find('[data-stato-archivio="1"]').first();
  if (!$box.length) return;

  // 2) trova l'area TOC di Citizen
  // Citizen usa comunemente .citizen-toc per il blocco del ToC (sidebar/rail)
  var tocContainer =
    document.querySelector('.citizen-toc') ||
    document.querySelector('#citizen-toc') ||
    document.querySelector('#toc'); // fallback estremo

  if (!tocContainer) return;

  // 3) inserisci il box sopra al contenuto del TOC
  // se esiste un contenitore interno, mettiamo il box prima della lista
  var inner =
    tocContainer.querySelector('.citizen-toc-contents') ||
    tocContainer.querySelector('.toc') ||
    tocContainer;

  inner.parentNode.insertBefore($box[0], inner);

  // 4) margini “da widget” nella rail
  $box[0].style.margin = '0 0 12px 0';
});