„Benutzer:Klaus/common.js“ – Versionsunterschied
Erscheinungsbild
K Die Seite wurde geleert. Markierung: Geleert |
KKeine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
| Zeile 1: | Zeile 1: | ||
// JavaScript zur gezielten Ersetzung des Weiterleitungs-Links innerhalb einer Wiki-Seite | |||
mw.loader.using(["mediawiki.api"], function () { | |||
console.log("✅ MediaWiki API geladen – Script startet..."); | |||
$(function () { | |||
console.log("✅ DOM bereit – Link wird eingefügt..."); | |||
// Sichtbaren Link unterhalb des Seiteninhalts einfügen | |||
$('<p><a href="#" id="btn-ersetzen">🛠️ Text prüfen & ersetzen</a></p>') | |||
.appendTo('#mw-content-text'); | |||
console.log("✅ Link eingefügt – Warte auf Klick..."); | |||
// Klick-Handler für den Link definieren | |||
$('#btn-ersetzen').click(async function (e) { | |||
e.preventDefault(); | |||
const api = new mw.Api(); | |||
const title = mw.config.get('wgPageName'); | |||
console.log("🔍 Lade Seiteninhalt für:", title); | |||
try { | |||
// Bestehenden Quelltext der Seite abrufen | |||
const pageData = await api.get({ | |||
action: 'query', | |||
prop: 'revisions', | |||
rvprop: 'content', | |||
titles: title, | |||
formatversion: 2 | |||
}); | |||
const content = pageData.query.pages[0].revisions[0].content; | |||
console.log("📄 Seiteninhalt geladen:", content); | |||
// Aktuellen Wert aus dem versteckten Span-Element lesen | |||
const neuerWert = document.getElementById('umschriftErgebnis')?.textContent || ''; | |||
console.log("🧪 Neuer Zielwert aus Umschrift:", neuerWert); | |||
// Nur den Link innerhalb der Weiterleitung ersetzen | |||
const neuerInhalt = content.replace(/#WEITERLEITUNG \[\[(.*?)\]\]/i, `#WEITERLEITUNG [[${neuerWert}]]`); | |||
if (neuerInhalt === content) { | |||
alert('⚠️ Keine ersetzbare Weiterleitung gefunden oder keine Änderung notwendig.'); | |||
return; | |||
} | |||
console.log("✍️ Schreibe neuen Seiteninhalt:", neuerInhalt); | |||
// Seite mit geändertem Inhalt speichern | |||
await api.postWithToken('csrf', { | |||
action: 'edit', | |||
title: title, | |||
text: neuerInhalt, | |||
summary: 'Automatische Aktualisierung der Weiterleitung', | |||
minor: true | |||
}); | |||
console.log("✅ Seite erfolgreich gespeichert – Neuladen...") | |||
// Seite neu laden, um Änderungen anzuzeigen | |||
location.reload(); | |||
} catch (err) { | |||
console.error('Fehler beim Ersetzen:', err); | |||
alert('🚫 Fehler beim Ersetzen – siehe Konsole für Details.'); | |||
} | |||
}); | |||
}); | |||
}); | |||
Version vom 24. April 2025, 15:00 Uhr
// JavaScript zur gezielten Ersetzung des Weiterleitungs-Links innerhalb einer Wiki-Seite
mw.loader.using(["mediawiki.api"], function () {
console.log("✅ MediaWiki API geladen – Script startet...");
$(function () {
console.log("✅ DOM bereit – Link wird eingefügt...");
// Sichtbaren Link unterhalb des Seiteninhalts einfügen
$('<p><a href="#" id="btn-ersetzen">🛠️ Text prüfen & ersetzen</a></p>')
.appendTo('#mw-content-text');
console.log("✅ Link eingefügt – Warte auf Klick...");
// Klick-Handler für den Link definieren
$('#btn-ersetzen').click(async function (e) {
e.preventDefault();
const api = new mw.Api();
const title = mw.config.get('wgPageName');
console.log("🔍 Lade Seiteninhalt für:", title);
try {
// Bestehenden Quelltext der Seite abrufen
const pageData = await api.get({
action: 'query',
prop: 'revisions',
rvprop: 'content',
titles: title,
formatversion: 2
});
const content = pageData.query.pages[0].revisions[0].content;
console.log("📄 Seiteninhalt geladen:", content);
// Aktuellen Wert aus dem versteckten Span-Element lesen
const neuerWert = document.getElementById('umschriftErgebnis')?.textContent || '';
console.log("🧪 Neuer Zielwert aus Umschrift:", neuerWert);
// Nur den Link innerhalb der Weiterleitung ersetzen
const neuerInhalt = content.replace(/#WEITERLEITUNG \[\[(.*?)\]\]/i, `#WEITERLEITUNG [[${neuerWert}]]`);
if (neuerInhalt === content) {
alert('⚠️ Keine ersetzbare Weiterleitung gefunden oder keine Änderung notwendig.');
return;
}
console.log("✍️ Schreibe neuen Seiteninhalt:", neuerInhalt);
// Seite mit geändertem Inhalt speichern
await api.postWithToken('csrf', {
action: 'edit',
title: title,
text: neuerInhalt,
summary: 'Automatische Aktualisierung der Weiterleitung',
minor: true
});
console.log("✅ Seite erfolgreich gespeichert – Neuladen...")
// Seite neu laden, um Änderungen anzuzeigen
location.reload();
} catch (err) {
console.error('Fehler beim Ersetzen:', err);
alert('🚫 Fehler beim Ersetzen – siehe Konsole für Details.');
}
});
});
});