Sovint és suficient connectar les propietats tal com es descriu anteriorment, però de vegades és més flexible o més pràctic utilitzar JS per a crear scripts en la lògica de la IGU. D'aquesta manera, l'exemple anterior es podria reescriure com:
[...]
<code file="code.js"/>
'
<logic>
<script><![CDATA[
// ECMAScript code in this block
// the top-level statement is only called once
gui.addChangeCommand ("mode.string", "modeChanged ()");
// this function is called whenever the "mode" was changed
modeChanged = function () {
var varmode = (gui.getString ("mode.string") == "variable");
gui.setValue ("y.enabled", varmode);
gui.setValue ("constant.enabled", !varmode);
}
]]></script>
</logic>
<dialog label="T-Test">
[...]
La primera línia de codi li diu al RKWard que cridi a la funció modeChanged() sempre que canviï el valor del quadre de botons d'opció id="mode". Dins d'aquesta funció, definim una variable d'ajuda "varmode" que és certa quan el mode és "variable", falsa quan és "constant". Després utilitzem gui.setValue() per a establir les propietats «enabled» de "y" i "constant", de la mateixa manera que abans vam fer servir sentències <connect>.
L'enfocament amb scripts a la lògica de la IGU esdevé particularment útil quan voleu canviar l'opció disponible segons el tipus d'objecte que l'usuari ha seleccionat. Vegeu la referència per a les funcions disponibles.
Tingueu en compte que l'enfocament amb scripts a la lògica de la IGU es pot barrejar amb sentències <connect> i <convert> si voleu. Tingueu en compte també que l'etiqueta <script> permet especificar un nom de fitxer de script a més o com a alternativa a la inclusió del codi de script. Normalment la inclusió del codi de script tal com es mostra a dalt és més pràctic.