Namen der JavaScript Funktionen
Die Namen der aufgerufenen JavaScript Funktionen sind
beliebig. Die maximale Länge des Namens beträgt 255 Zeichen. Gross-/Kleinschreibung der Funktionsnamen
Es ist möglich, aber nicht zu empfehlen, in JavaScript
Funktionen zu implementieren, deren Namen sich nur durch
Gross-/Kleinschreibung unterscheiden. Der JavaScript-Aufruf aus
GuiXT findet die Funktion zwar auch bei anderer Gross/Kleinschreibung
(sofern es sich um ASCII-Zeichen handelt) und ruft bei exakter
Schreibweise die richtige Funktion auf; durch die ähnlichen Namen wird es
aber doch etwas verwirrend. function abc(){ return "abc"; } function Abc(){ return "Abc"; } function Überschrift(){ return "Überschrift"; }
Parameterübergabe Bei CallJS kkönnen Sie bis zu 50 Parameter mitgeben. Die Maximallänge des übergebenen Wertes pro Parameter ist ca. 8000 Zeichen (die Übergabe von Langtextvariablen sowie strukturierten Variablen ist weiter unten beschrieben). Beispiel: Die folgende JavaScript-Funktion ermittelt die Position einer Zeichenreihe t innerhalb einer Zeichenreihe s:
function
indexOf(s, t) Aufruf in GuiXT zum Beispiel mit: CallJS x =
indexOf
"London" "do"
Optionale Parameter Insbesondere bei der späteren Erweiterung von JavaScript Funktionen um zusätzliche Parameter ist es nützlich, die neuen Parameter mit Defaultwerten zu versehen, um nicht alle Scripte anpassen zu müssen, welche die Funktion aufzurufen. Das geht durch die Abfrage, ob ein Parameter den Typ 'undefined' hat: function split(s, delimiter){ // set
default delimiter } Variabel viele Parameter Falls der Aufruf einer JavaScript Funktion mit variabel vielen Parametern möglich sein soll, können Sie in JavaScript das Objekt "arguments" verwenden. Dabei beachten, dass "arguments" kein JavaScript-Array ist, obwohl man auf die einzelnen Parameter wie bei einem Array über einen Index 0,1,2,... zugreifen kann. Bei Bedarf zunächst in ein wirkliches Array umwandeln. Beispiel: Die folgende Funktion kann mit einer variablen Anzahl von Strings aufgerufen werden. Sie gibt die Strings in Form einer Liste (x,y,...) zurück: function buildList(){ // array var a = []; // convert arguments list to array for (var i = 0; i < arguments.length; ++i) { a.push(arguments[i]); }; // return list via "join" return "(" + a.join(",") + ")"; } CallJS mylist = buildList "London" "Rome" "Berlin" Message "&V[mylist]"
Langtextvariablen Es ist nicht ratsam, den Inhalt einer Langtextvariablen "mytext" bei CallJS in der Form "&text[mytext]"mitzugeben, da dann die Maximallänge auf 8000 Zeichen begrenzt ist. Geben Sie stattdessen nur den Namen der Textvariablen mit und lesen SIe den Inhalt in JavaScript mit guixt.GetText(). Analog können Sie in die GuiXT Langtextvariablen mit guixt.SetText() einen neuen Inhalt schreiben. DIe Länge ist dann in beide Richtungen nicht begrenzt.Beispiel: Die folgende JavaScript Funktion zählt die Anzahl Wörter in einem Text. function
wordcount(textname) Textbox
(2,2)
(10,60)
name="mytext"
Strukturvariablen und Tabellenvariablen Ähnlich wie GuiXT Langtextvariablen können Sie auch GuiXT Strukturvariablen sowie Tabellenvariablen als Ganzes aus JavaScript heraus lesen und schreiben. Da GuiXT das JSON Format unterstützt (JavaScript Object Notation), sind die Funktionen JSON.parse() und JSON.stringify() zur Konvertierung ausreichend:// Einlesen einer GuiXT Struktur- oder Tabellenvariablen // als JavaScript Objekt var myobj = JSON.parse(guixt.Get(myvar)); // Schreiben einer GuiXT
Struktur- oder Tabellenvariablen Beispiele finden Sie in den "Tips, Trick and Samples" zu JavaScript, etwa in Convert GuiXT table to array
|