wikEd und JavaScript-Programmierung


Diese Seite beschreibt Besonderheiten der JavaScript-Programmierung für oder mit dem Texteditor wikEd.

Konfiguration 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;
überholt:
window.wikEdFilePreview (…2010-08/09)
nicht anzeigen:   = false;
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 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.
window.wikEd.UpdateTextarea()
Überträgt den WikEd-Inhalt in die allgemeine HTML-Textbox wpTextbox1.
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 zeitweilig disabled werden.

Sonstige Konfigurationsmöglichkeiten 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 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.

Weitere Informationen Bearbeiten