MediaWiki:Common.js: Unterschied zwischen den Versionen

MediaWiki-Schnittstellenseite
Keine Bearbeitungszusammenfassung
Markierung: Manuelle Zurücksetzung
Keine Bearbeitungszusammenfassung
Zeile 5: Zeile 5:
   const tempElement = document.createElement('div');
   const tempElement = document.createElement('div');
   tempElement.innerHTML = htmlString;
   tempElement.innerHTML = htmlString;
 
    
   // Schritt 2: Das erste div-Element auswählen
   if (tempElement.querySelector('div')) {
   const firstDiv = tempElement.querySelector('div');
     tempElement.querySelector('div').remove();
 
  // Schritt 3: Das erste div-Element entfernen, wenn vorhanden
  if (firstDiv) {
     firstDiv.remove();
   }
   }
    
    

Version vom 5. August 2023, 14:42 Uhr

/* Das folgende JavaScript wird für Benutzer des Citizen-Skins geladen */

function removeFirstDiv(htmlString) {
  // Schritt 1: Ein temporäres DOM-Element erstellen
  const tempElement = document.createElement('div');
  tempElement.innerHTML = htmlString;
  
  if (tempElement.querySelector('div')) {
    tempElement.querySelector('div').remove();
  }
  
  const paragraphs = tempElement.querySelectorAll('p');

  // Schritt 3: Das letzte <p>-Element entfernen, wenn vorhanden
  const lastParagraph = paragraphs[paragraphs.length - 1];
  if (lastParagraph) {
    lastParagraph.remove();
  }

  // Schritt 4: Das modifizierte HTML zurückgeben
  return tempElement.innerHTML;
}

// Überprüfe, ob die Meldung bereits auf der aktuellen Seite geladen wurde
if (!$('.global-message').length) {
    // Lade den Inhalt der "MediaWiki:GlobalMessage"-Seite asynchron
    $.ajax({
        url: mw.util.getUrl('MediaWiki:GlobalMessage', { action: 'render' }), // action=render, um nur den Inhalt zu erhalten
        dataType: 'html'
    }).done(function(data) {
        // Füge den Inhalt der "MediaWiki:GlobalMessage"-Seite am Anfang des Inhaltsbereichs hinzu
        $('#mw-content-text').prepend('<div class="global-message" style="margin-bottom: 10px">' + removeFirstDiv(data) + '</div>');
    });
}