Wikipedia:Technik/Skin/JS/wikEd
wikEd und JavaScript-Programmierung
Diese Seite beschreibt Besonderheiten der JavaScript-Programmierung für oder mit dem Texteditor wikEd.
Konfiguration
[Quelltext bearbeiten]Ab September 2010 wurden die Konfigurationsvariablen von wikEd durch Eigenschaften des Objekts window.wikEd.config.
… ersetzt. Die Existenz dieses Objekts (typeof(window.wikEd) === "object")
) zeigt die mögliche Aktivität von wikEd an und sollte sicherheitshalber vor Zugriff im Skript geprüft werden. Beispiel:
if (! mw.config.get("wgIsArticle")) {
if ( /^(edit|submit)$/.test( mw.config.get("wgAction") ) ) {
if (window.wikEd) {
window.wikEd.config.filePreview = false;
}
}
}
- Miniaturbilder im Quelltext
window.wikEd.config.filePreview
(2010-09…)- nicht anzeigen:
= false;
- nicht anzeigen:
- überholt:
window.wikEdFilePreview
(…2010-08/09)- nicht anzeigen:
= false;
- nicht anzeigen:
- wikEd aktiv
window.wikEd.config.disabled
=== true
– ist vorhanden, aber nicht aktiv
window.wikEd.useWikEd
- = true/false – Benutzung ist zeitweilig vom Benutzer deaktiviert worden; sollte vor jeder externen Manipulation geprüft werden, da wikEd bei seinen internen Aktivitäten davon ausgeht, dass es aktiv ist.
Synchronisation
[Quelltext bearbeiten]Für Benutzerskripte in Zusammenarbeit mit wikEd sind wichtig:
- Synchronisation des Wikitextes
window.wikEd.UpdateFrame()
- Überträgt den Inhalt aus der allgemeinen HTML-Textbox
wpTextbox1
nach WikEd.
- Überträgt den Inhalt aus der allgemeinen HTML-Textbox
window.wikEd.UpdateTextarea()
- Überträgt den WikEd-Inhalt in die allgemeine HTML-Textbox
wpTextbox1
.
- Überträgt den WikEd-Inhalt in die allgemeine HTML-Textbox
- Initialisierung
- Falls auf modernen Browsern Skripte parallel geladen werden, kann es vorkommen, dass beim beendeten Laden des Dokuments (ready) wikEd zwar geladen, aber noch nicht initialisiert worden war, während das aktuelle Skript bereits gestartet wurde. Mit
window.wikEd.Setup();
- sollte dies sicherheitshalber vor Benutzung der anderen Funktionen ausgelöst werden. Falls das Setup bereits anderweitig erfolgt war, schadet das nicht. Die Existenz des Objektes
wikEd
zeigt an, dass das wikEd-Skript geladen wurde. Nachdem die Seite geladen wurde, erfolgt wikEd.Setup() und die Aktivitäten von wikEd können danach trotzdem zeitweiligdisabled
werden.
Sonstige Konfigurationsmöglichkeiten
[Quelltext bearbeiten]- Die Werkzeugleiste kann um eigene Buttons ergänzt werden, und es können bis zu zwei eigene Werkzeugleisten hinzugefügt werden.
- Es gibt Hook-Funktionen für verschiedene Phasen der Steuerung.
Wechselnde Browser
[Quelltext bearbeiten]Die einfache Einbindung per Häkchen in den Helferlein ist immer wirksam. WikEd arbeitet aber nur mit Gecko-Browsern zusammen, also in erster Linie Firefox. Wechselt jemand häufig den Browser, führt dies möglicherweise im Internet Explorer zu Fehlern. Eine bedingte Einbindung kann über die eigene common.js in Abhängigkeit vom momentanen Browser erfolgen:
if ( jQuery.client.profile().layout === "gecko" ) {
mw.loader.load( "//en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js&action=raw&bcache=1&maxage=86400&ctype=text/javascript" );
}
Dabei ist jQuery.client
ein Modul, dessen Laden zuvor geprüft worden sein muss.