Das <script>-Element ermöglicht es, Skriptcode (JavaScript) in RCML einzufügen und zu verwenden. Der Scriptcode wird als Elementinhalt von <script> notiert. Die notierten Methoden und Eigenschaften stehen dann in der gesamten RCML zur Verfügung, unabhängig davon, in welchem Element das <script> notiert ist (es gibt nur den globalen Speicherbereich). <script> ist zwar überall im Dokument erlaubt, Kontrollanweisungen haben aber keinen Effekt auf das Element: So können Sie zwar <script> innerhalb eines <while> notieren, das Skript wird aber dennoch nur einfach definiert. Generell ist davon abzuraten. Notieren Sie <script>-Elemente besser zu Beginn des Dokuments oder zu Beginn des entsprechenden <process>. Hier wird nicht näher auf JavaScript eingegangen, da dies den Rahmen dieser Dokumentation sprengen würde. Ein gutes Einsteiger-Tutorial finden Sie auf W3Schools.
Skript kann nicht aus externen .js-Dateien eingebunden werden.
Attribute
Attributname
Datentyp
Beschreibung
Mögliche Werte
Standardwert
Obligatorisch?
language
STRING
Die verwendete Skriptsprache für diesen Skriptbereich.
Standardmäßig wird nur "JavaScript" unterstützt.
—
Subelemente / Inhalt
Das <script>-Element besitzt keine Subelemente. Als Inhalt wird der Skriptcode notiert.
Variablenbindungen
Das <script>-Element besitzt keine Variablenbindungen.
Beispiel
In folgendem Beispiel wird eine einfache JavaScript-Funktion definiert, die die aktuelle Zeit zurückgibt. Dies wird dann in einem <message>-Element verwendet und an das EOMS-Core gesendet. Weitere Beispiele finden Sie im HowTo - JavaScript in RCML.
<rcml>
<process id="rs" name="Redaktions-System">
<script>
<![CDATA[
function getTime{
var date = new Date();
return date.toTimeString();
}
]]>
</script>
<!-- Aufruf der JavaScript-Funktion. -->
<message text="${'Starting rs process at' + getTime()}" />
</process>
</rcml>
Umschließen Sie den Skriptcode im <script>-Elemente mit der Vorsilbe <![CDATA[ und der Nachsilbe ]]>, um auszuschließen, dass Skriptcode vom Interpreter versehentlich als XML erkannt wird.