Jmol English Español Inicio | Páginas de demostración | Sitios web
Documentación | Wiki | Historia | Preguntas frecuentes
Verificación del navegador | Descarga | Páginas del proyecto

Biblioteca javascript Jmol.js

Jmol.js was a JavaScript library that was used to simplify
development of web pages that included the Jmol Java applet
prior to the development of JSmol. It is no longer recommended.
The description below is for historical reference only.

Please refer to the JSmol applet JavaScript scripting information for more up-to-date information.

¿Qué hace Jmol.js?
Cómo conseguir Jmol.js
Páginas HTML de ejemplo que usan Jmol.js
Recomendaciones generales
Instrucciones básicas
     jmolInitialize
     jmolApplet
     jmolButton
     jmolLink
     jmolCheckbox
     jmolRadioGroup
     jmolMenu
Instrucciones intermedias
     jmolSetAppletColor
     jmolResizeApplet
     jmolHtml
     jmolBr
     jmolScript
     jmolScriptWait
     jmolScriptWaitAsArray
     jmolCommandInput
     jmolSaveOrientation
     jmolRestoreOrientation
     jmolRestoreOrientationDelayed
Instrucciones avanzadas
     jmolDebugAlert
     jmolSetLogLevel
     jmolGetStatus
     jmolSetTarget
     jmolRadio
     jmolStartNewRadioGroup
     jmolSetCheckboxGroup
     jmolCheckBrowser
     jmolSetDocument
     jmolSetAppletWindow
     jmolAppletInline
     jmolLoadInline
     jmolLoadInlineScript
     jmolSetCallback
     jmolAppletAddParam
     jmolEvaluate
     jmolGetPropertyAsArray
     jmolGetPropertyAsString
     jmolGetPropertyAsJSON
     jmolGetPropertyAsJavaObject
     jmolDecodeJSON
     jmolScriptEcho
     jmolScriptMessage
Respaldo para hojas de estilo en cascada (CSS)
     jmolSetAppletCssClass
     jmolSetButtonCssClass
     jmolSetCheckboxCssClass
     jmolSetRadioCssClass
     jmolSetLinkCssClass
     jmolSetMenuCssClass

¿Qué hace Jmol.js?

La biblioteca Jmol.js proporciona dos tipos de prestaciones que pretenden facilitar la preparación de páginas web que usen miniaplicaciones Jmol:

  • Proporciona funciones para insertar la miniaplicación Jmol en la página web y para controlar el aspecto html y css de la mniaplicación y de sus controles en la página web. Aunque prefieras escribir tu propio código css, las instrucciones javascript básicas que muestran la miniaplicación son muy recomendables.
  • También genera controles de interfaz de usuario (botones, botones radio, casillas de verificación, listas desplegables, etc.) que interaccionan con la mniaplicación Jmol en la página web. Puedes preparar una página que cargue una molécula de interés y que proporcione tales controles para permitir que el usuario cambie características concretas de cómo se presenta la molécula, su fondo, que la hagan rotar, etc. (Esto es posible gracias a una tecnología llamada LiveConnect que permite que las páginas web interaccionen con las miniaplicaciones mediante javascript.) La alternativa es dejar que el usuario manipule la molécula usando el menú emergente de la miniaplicación y los gestos con el ratón, o bien mediante instrucciones en la consola, todo lo cual sólo es realmente apropiado para usuarios familiarizados con Jmol.

Recomendamos encarecidamente que uses Jmol.js para construir tus páginas web. Se automatiza la generación de muchas etiquetas HTML, haciendo así el código más simple, más fácil de entender y menos propenso a errores.

La biblioteca Jmol.js debería funcionar correctamente con la mayoría de los navegadores web recientes (de este siglo). Además, en los sistemas Windows (Win32) generalmente funciona bien con la serie de navegadores Netscape 4.x (que pertenece al siglo pasado).

Advertencia: en Mac OS X, Internet Explorer no es compatible porque no proporciona la comunicación LiveConnect entre javascript y las miniaplicaciones Java. Por otro lado, algunas versiones de la familia de navegadores Mozilla (que incluye Firefox y Camino) puede requerir su configuración para utilizar Java 1.4.2 mediante javaplugin.sourceforge.net (al parecer, las versiones más recientes de estos navegadores ya incluyen este conector, por lo que funcionarán sin necesidad de esa instalación extra) Cada páginaCada página

Hay unas pocas situaciones en las que podrías optar por no utilizar la biblioteca Jmol.js. Entre ellas, puedes querer construir una aplicación avanzada en el servidor web, que genere HTML desde el servidor, tal como PHP, JSP, ASP, CGI, etc. Si éste es el caso, puede ser adecuado que generes el código HTML directamente en el servidor, en cuyo caso no usarás la biblioteca Jmol.js. Si no estás seguro, utiliza la biblioteca Jmol.js.

Cómo conseguir Jmol.js

Jmol.js está incluido en el paquete Jmol que se descarga (página de descargas de Jmol).

Páginas HTML de ejemplo que usan Jmol.js

Visita las páginas de demostración (hay un enlace en el menú superior derecho) para ver algunas páginas de ejemplo que usan la miniaplicación Jmol y los distintos tipos de controles que se pueden incorporar en la interfaz de usuario utilizando la biblioteca Jmol.js.

Recomendaciones generales

  • Debes crear un directorio o carpeta en tu servidor web que contenga Jmol.js, JmolApplet0.jar, los otros JmolApplet(lo_que_sea).jar y cualesquiera otros archivos específicos de Jmol. A los efectos de esta discusión, la llamaremos CarpetaJmol.
    Si pretendes ejecutar tus páginas web desde un disco local (disco duro, CD-ROM...), se imponen ciertas restricciones respecto a dónde puedes situar CarpetaJmol; por favor, consulta esta página.
  • Cada página web que forme parte del sitio web e incluya miniaplicaciones o controles Jmol debe hacer referencia a CarpetaJmol; para ello, se recomienda que uses una ruta URL relativa (por ej., una que comience con . o ... En circunstancias especiales, pueden ser aceptables rutas relativas al servidor, que comiencen con /. Las rutas absolutas (las que comienzan con http://) deben usarse sólo en situaciones especiales en las que es imposible sustituirlas por referencias relativas a la página que las invoca (por ej., cuando las páginas se generan sobre la marcha a partir de servlets).
  • Cada página debe contener la siguiente instrucción HTML dentro de la sección de cabecera head, para que se incluya la biblioteca Jmol.js :
      <head>
        ...
        <script type="text/javascript" src="CarpetaJmol/Jmol.js"></script>
        ...
      </head>
    
  • La primera llamada a la biblioteca Jmol.js en cada página debe ser jmolInitialize("CarpetaJmol").
  • Aunque ya no es necesario, puede ser conveniente que cada página que contenga controles de tipo botón, casillas de selección, grupos de opciones o menús (button, checkbox, radio, select) incorpore etiquetas <form> y </form> que los rodeen. Para ello, generalmente es seguro abrir tal etiqueta inmediatamente tras la etiqueta <body> y cerrarla inmediatamente antes de la etiqueta </body>.
      <body>
        <form>
        ...
        </form>
      </body>
    </html>
    

Instrucciones básicas

(Los parámetros con subrayado de puntos son opcionales)

jmolInitialize

jmolInitialize(CarpetaJmol)

Inicializa la biblioteca JavaScript Jmol.js. La llamada a jmolInitialize() puede estar dentro de la cabecera (<head>) o del cuerpo (<body>) de la página web, pero debe estar situada antes que ninguna otra llamada de Jmol.js. El primer parámetro, CarpetaJmol, es indispensable e indica (entre comillas) la ruta relativa a la carpeta que contiene JmolApplet0.jar y los otros archivos de la miniaplicación.

Avanzado:
jmolInitialize() puede omitirse si quieres usar JmolApplet.jar y ese archivo está en la misma carpeta o directorio que la página HTML.

Uso de la miniaplicación firmada o una miniaplicación específica

Avanzado:

jmolInitialize(CarpetaJmol, usarEspecífica)
jmolInitialize(CarpetaJmol, usarSignedApplet)

Si el segundo parámetro es un texto (por ej., "miArchivoJar.jar"), se interpretará como el nombre de archivo jar de una miniaplicación personalizada, que debe usarse. (Y si es "JmolApplet0.jar", se usará también el resto de archivos jar.)
Si no es un nombre de archivo, se interpretará como un valor lógico (verdadero/falso) para usar o no la miniaplicación firmada o confiable (SignedApplet), que aplica menos restricciones de seguridad en Java que la miniaplicación no firmada. Si se omite este parámetro (como en el primer ejemplo de sintaxis de arriba), se asumirá "false" y se usará la miniaplicación no firmada.
Con la miniaplicación firmada, puedes poner los archivos de la miniaplicación, los de los modelos y los de las páginas donde quieras y ejecutarlos desde un disco local. También permite a Jmol abrir archivos locales. Los usuarios recibirán una advertencia de seguridad de Java, pidiéndoles permiso para el uso de la miniaplicación firmada (considera que esto puede hacer que los usuarios noveles renuncien a entrar en tus páginas, a no ser que previamente les adviertas con detalle de que ese aviso aparecerá y que no es peligroso).

jmolApplet

jmolApplet(tamaño, guión, sufijoNombre)

Define e inserta en la página una miniaplicación JmolApplet.

tamaño puede ser:

  • Para una miniaplicación cuadrada, un solo valor.
  • Para una miniaplicación rectangular, una matriz de dos elementos: ancho y alto. Normalmente esto es más fácil de hacer usando la notación de corchetes de javascript para matrices de constantes, por ej.: [400, 200], ["50%", "100%"] o [0.5, 1.0].
  • Cada dimensión (tamaño, ancho, alto) puede indicarse como:
    • un número entero de píxeles (entre 25 y 2000);
    • un valor de porcentaje, acabado en % y rodeado por comillas (pero lea las notas a continuación); este valor será interpretado por el navegador como un porcentaje de las dimensiones de la capa que engloba la miniaplicación (ventana, marco o capa DIV); dependiendo de cuál sea esa capa y de sus propiedades, esto permite tener una miniaplicación que se redimensiona dinámicamente cuando cambie el tamaño de la ventana del navegador;
    • un número entre cero y 1 que, multiplicado por 100, se interpretará como porcentaje.
Nota 1: los tamaños en porcentaje, y los números menores de 1, sólo están disponibles en Jmol.js que acompaña a la versión 11.0.2 o posterior de la serie 11.0 de Jmol, y a la versión 11.1.28 o posterior.
Nota 2: sea cauto al usar tamaños en porcentaje, pues pueden rendir resultados no deseados en navegadores antiguos.
Nota 3: para conseguir una compatibilidad con diversos navegadores al especificar una altura en porcentaje, es preciso que la capa que envuelve la miniaplicación tenga una altura explícita (de no ser así, algunos navegadores generarán una miniaplicación de altura cero). Ésta puede ser un número de píxeles o, si se desea que la altura sea relativa a la altura de la ventana, debe especificarse un valor CSS de altura de 100% tanto para html como para body.

guión (opcional) es un guión, o conjunto de instrucciones, que se deberá ejecutar. Normalmente, se usa para cargar un modelo molecular y aplicarle algún estilo.

sufijoNombre (opcional) sólo es necesario si quieres controlar específcamente los atributos name e id que se usen como parte de la etiqueta applet. El sufijo que indiques se añadirá al texto "jmolApplet", por lo que si usas "Uno" los atributos generados serán name='jmolAppletUno' id='jmolAppletUno'. Si usas una aplicación con base de datos en la que escribes registros en una tabla, puedes tranquilamente asignar números enteros como sufijos. Si no se proporciona un sufijoNombre, las miniaplicaciones tomarán los nombres jmolApplet0, jmolApplet1, etc., sucesivamente en el orden en el que se inserten en la página.
Cuando se inserten varias miniaplicaciones en una página, el valor de sufijoNombre, explícito o implícito, es importante para que las posteriores instrucciones que establecen acciones, tales como jmolSetTarget, jmolScript o jmolLoadInlineScript, se apliquen a la miniaplicación adecuada.

Avanzado (para pruebas y depuración):
Si pones "?NOAPPLET" (en mayúsculas) al final de la dirección URL en el navegador, no se insertará la miniaplicación en la página web, sino que en su lugar se mostrará un área de texto informativa.
Esto puede ser útil para ensayar la acción de los botones u otros controles. Éstos funcionarán pero, en lugar de actuar, se mostrarán en el área de texto las instrucciones que se habrían enviado a la miniaplicación si ésta hubiese estado allí.

Nota:
LLeva algo de tiempo construir la miniaplicación, por lo cual si pones alguna acción inmediata, como jmolScript() o jmolLoadInline() justo tras la línea jmolApplet(), probablemente falle porque se ejecutará antes de que la miniaplicación haya terminado de cargarse. Hay tres alternativas que sí funcionarán:

  • Pon las instrucciones dentro de la llamada a jmolApplet() (su segundo argumento, guión).
  • Haz que el navegador espere hasta que la miniaplicación esté lista. Para ello, pon esto al final del guión enviado al crear la miniaplicación: javascript JmolCargado(); y define una función JavaScript llamada JmolCargado() (o cualquier otro nombre que prefieras) que ejecutará las instrucciones restantes.
  • Mejor aún: utiliza appletReadyCallback antes de jmolApplet():
    jmolSetCallback("appletReadyCallback","JmolCargado");
    y define tu función JmolCargado() para que haga lo que precises.

jmolButton

jmolButton(guión, rótulo, id, title)

Dibuja un botón con un rótulo de texto.

Cuando se pulse el botón, se ejecutarán las instrucciones del guión. Si en la página hay varias miniaplicaciones Jmol, las instrucciones se aplicarán a la inmediatamente anterior o a la que haya sido especificada mediante una instrucción jmolSetTarget previa.
Como sintaxis especial (válida para todos los otros controles, al igual que para el botón descrito aquí), en lugar de un guión de Jmol puedes ejecutar una función de JavaScript que hayas definido, proporcionando esto en lugar del guión: [nombreFunción, param1, param2, param3...]
La función debe definirse así:

    function nombreFunción(botón, objeto, diana) {
        // El segundo argumento es una matriz.
        var param1 = objeto[1];
        var param2 = objeto[2];
        var param3 = objeto[3];
        // Aquí el JavaScript que deba ejecutarse.
        ....
    }

rótulo es el texto del botón; si no se indica, por defecto toma como valor los primeros 32 caracteres del guión.

id (opcional) se usará para los valores de los parámetros de HTML "id" y "name". Sus valores por defecto son jmolButton0, jmolButton1, etc.

Avanzado:
Además, el botón quedará incluido en un elemento <span> que tendrá un parámetro HTML id de "span_" seguido del id indicado, y un parámetro HTML title de title.
Los navegadores mostrarán, pues, title en forma de texto flotante o "tooltip" al detener el puntero del ratón sobre el botón.

jmolLink

jmolLink(guión, texto, id, title)

Cuando el usuario haga clic en el enlace, se ejecutarán las instrucciones del guión. Si en la página hay varias miniaplicaciones Jmol, las instrucciones se aplicarán a la inmediatamente anterior o a la que haya sido especificada mediante una instrucción jmolSetTarget previa.

texto se escribirá en la página en forma de hiperenlace. Si no se indica, por defecto toma como valor los primeros 32 caracteres del guión.

id se usará para los valores de los parámetros de HTML "id" y "name". Toma por defecto los valores jmolLink0, jmolLink1, etc.

Avanzado:
Además, el texto de enlace se incluirá en un elemento <span> que tendrá un parámetro HTML id de "span_" seguido del id indicado, y un parámetro HTML title del title indicado.
Los navegadores mostrarán, pues, title en forma de texto flotante o tooltip al detener el puntero del ratón sobre el hiperenlace.

jmolCheckbox

jmolCheckbox(guiónAlMarcar, guiónAlQuitarMarca, etiquetaHtml, estáMarcado, id, title)

Muestra una casilla de selección o "checkbox", seguida inmediatamente por lo que indique etiquetaHtml.

Cuando el usuario la marque, se ejecutarán las instrucciones de guiónAlMarcar.
Cuando el usuario quite la marca, se ejecutarán las instrucciones de guiónAlQuitarMarca.

Si en la página hay varias miniaplicaciones Jmol, las instrucciones de los guiones se aplicarán a la inmediatamente anterior o a la que haya sido especificada mediante una instrucción jmolSetTarget previa.

Debes asignar un valor no falso a estáMarcado si quieres que la casilla ya esté marcada al cargar la página; por defecto no lo estará. (Por ej., true.)

id se usará para los valores de los parámetros de HTML "id" y "name". Sus valores por defecto son jmolCheckbox0, jmolCheckbox1, etc.

Avanzado:
Además, la casilla y su etiqueta acompañante quedarán incluidas en un elemento <span> que tendrá un parámetro HTML id de "span_" seguido del id indicado, y un parámetro HTML title de title (opcional).
Los navegadores mostrarán, pues, title en forma de texto flotante o "tooltip" al detener el puntero del ratón sobre la casilla o su texto/etiqueta acompañante.

La etiqueta estará rodeada por etiquetas <label>; el resultado es que haciendo clic sobre el texto de la etiqueta se consigue lo mismo que haciendo clic sobre la propia casilla.

jmolRadioGroup

jmolRadioGroup(grupoOpciones, separadorHtml, nombreGrupo, id, title)

Sirve para poner un grupo de opciones mutuamente excluyentes (un grupo de "botones radio" o radio buttons). grupoOpciones se indica habitualmente mediante la notación de corchetes de javascript [ elementoA, elementoB, ... ]. Cada elemento suele ser a su vez otra matriz que contiene un guión, una etiqueta y un indicador opcional para especificar si la opción está seleccionada (o el botón marcado). Si un elemento es un texto simple, en lugar de una matriz, se usará ese texto como guión y como etiqueta.
Si en la página hay varias miniaplicaciones Jmol, las instrucciones de los guiones se aplicarán a la inmediatamente anterior o a la que haya sido especificada mediante una instrucción jmolSetTarget previa.

separadorHtml sirve para indicar código HTML que se insertará tras cada opción o botón radio. Por ejemplo, para poner las opciones en líneas separadas, debes poner como parámetro "<br>". Si no se indica un separadorHtml, tomará el valor predeterminado "&nbsp;" (es decir, un espacio).

nombreGrupo se usará como el identificador HTML ("name") común a todo el grupo de opciones. Toma por defecto los valores jmolRadioGroup0, jmolRadioGroup1, etc.

Avanzado:
El grupo completo de opciones se incluirá en un elemento <span> que tendrá un parámetro HTML id de id o, si no se proporciona éste, el valor de nombreGrupo
A su vez, cada opción o botón radio tendrá, junto con su etiqueta, un parámetro HTML id de "span_" seguido del identificador del grupo, de un guión bajo y de un número secuencial (comenzando por cero), y como parámetro HTML title, el title del grupo (opcional).
La etiqueta de cada opción estará rodeada por etiquetas <label>; el resultado es que haciendo clic sobre el texto de la etiqueta se consigue lo mismo que haciendo clic sobre el propio botón radio.

jmolMenu

jmolMenu(grupoElementosMenú, alturaMenú, id, title)

Sirve para mostrar un menú de elementos asociados a sendos guiones. grupoElementosMenú se suele indicar mediante la notación de corchetes de javascript [ elementoA, elementoB, ... ]. Cada elemento suele ser a su vez otra matriz que contiene un guión, una etiqueta y un indicador opcional para especificar si es la opción o elemento seleccionado. Si un elemento es un texto simple, en lugar de una matriz, se usará ese texto como guión y como etiqueta.
Si en la página hay varias miniaplicaciones Jmol, las instrucciones de los guiones se aplicarán a la inmediatamente anterior o a la que haya sido especificada mediante una instrucción jmolSetTarget previa.

alturaMenú sirve para indicar la altura del menú. Si no se especifica o vale 1, el menú es del tipo "combo-box", que se despliega cuando el usario hace clic sobre él. Si la altura vale 2 o más, entonces se muestra un menú con el número indicado de líneas. Si el valor es -1, la altura del menú se ajustará para que se vean todos sus elementos.

id se usará para los valores de los parámetros de HTML "id" y "name". Toma por defecto los valores jmolMenu0, jmolMenu1, etc.

Avanzado:
Además, el menú se incluirá en un elemento <span> que tendrá un parámetro HTML id de "span_" seguido del id indicado, y un parámetro HTML title del title indicado.
Los navegadores mostrarán, pues, title en forma de texto flotante o tooltip al detener el puntero del ratón sobre el menú.
Avanzado:
Se pueden definir grupos de opciones (en HTML, optgroup) de este modo:
Añade el elemento optgroup como uno más en el grupoElementosMenú. Para él, el primer elemento de la matriz secundaria debe ser "#optgroup" (en lugar de un guión); el segundo elemento, el texto mostrado para el grupo ("label" en sintaxis HTML no puede contener una comilla simple o apóstrofo); el tercer elemento no se usará. Luego añade un elemento más para señalar el fin del grupo, cuyo primer elemento debe ser "#optgroupEnd" (los elementos segundo y tercero se ignoran). Ejemplo:
 jmolMenu([
 [null, ".... selecciona ....", true],
 ["color cpk", "patrón CPK"],
 ["#optgroup", "... Colorear por: ...."],
 ["color structure", "estructura"],
 ["color chain", "cadena"],
 ["color group", "grupo"],
 ["#optgroupEnd"],
 ["#optgroup", ".... Otros colores: ...."],
 ["color formalcharge", "carga eléctrica"],
 ["color amino", "patrón amino"],
 ["color shapely", "patrón shapely"],
 ["#optgroupEnd"]
 ]);

Instrucciones intermedias

jmolSetAppletColor

jmolSetAppletColor(colorFondo, colorTextoBarra, colorProgreso)

Sirve para establecer el color de fondo de la miniaplicación. colorFondo se indica usando la notación "#RRGGBB" de HTML (R=rojo, G=verde, B=azul, en valores hexadecimales), o bien uno de los nombres de colores reconocidos por JavaScript.

Esta instrucción debe proporcionarse antes de jmolApplet.

Avanzado:
Se pueden indicar también los colores del texto y de la barra del indicador de progreso (mientras se está cargando la miniaplicación). (Las versiones modernas de Java ya no usan esto.)

jmolResizeApplet

jmolResizeApplet(tamaño, sufijoDiana)

Sirve para cambiar de tamaño una miniaplicación ya existente.

tamaño: un valor o una matriz con dos valores; consulta los detalles de los formatos aceptados en la función jmolApplet.
Caso especial: si el valor de ancho o el de alto está vacío (por ej., ""), esa dimensión no se cambiará.

Cuando se estén mostrando en la página varias miniaplicaciones JmolApplet, sufijoDiana permite indicar cuál de ellas se debe redimensionar; su valor por defecto es "0" (es decir, la primera miniaplicación de la página).

Nota:
Implementado en Jmol.js a partir de la versión 11.7.42 de Jmol.

jmolHtml

jmolHtml(textoHtml)

Permite pasar cualquier texto, en especial etiquetas HTML, directamente a la página; a veces esto es más conveniente que cerrar y abrir sucesivas etiquetas script. El resultado es exactamente el mismo que el de:
</script>textoHtml<script>
o document.write(textoHtml)

jmolBr

jmolBr()

Inseta un salto de línea en la página. Es lo mismo que
jmolHtml("<br />"), o
</script><br /><script>, o bien
document.write("<br />").

jmolScript

jmolScript(guión, sufijoDiana)

Sirve para construir tus propios controles de interfaz de usuario, o para ejecutar el guión en función de eventos javascript.
(Esta función jmolScript se usa también internamente para implementar los controles descritos hasta ahora.)

Cuando se estén mostrando en la página varias miniaplicaciones JmolApplet, sufijoDiana permite indicar sobre cuál actuará el guión. El valor por defecto de sufijoDiana es "0" (es decir, la primera miniaplicación de la página).
Caso especial: si se indica "all" como sufijoDiana, el guiónse aplicará a todas las miniaplicaciones presentes.

Advertencia:
excepto para la primera miniaplicación de la página, debes indicar aquí un sufijoDiana; el uso de jmolSetTarget no afecta a jmolScript, jmolScriptWait o jmolScriptWaitAsArray.

jmolScriptWait

jmolScriptWait(guión, sufijoDiana)

Esta función añade dos mejoras a jmolScript:
1) se espera hasta que el guión se ha ejecutado por completo antes de devolver el control (y así se evita que javascript continúe con otras tareas)
2) si se asigna a una variable, devuelve en ella los mensajes de estado, que se pueden usar para detectar errores o diagnosticar problemas.

Cuando se estén mostrando en la página varias miniaplicaciones JmolApplet, sufijoDiana permite indicar sobre cuál actuará el guión. El valor por defecto de sufijoDiana es "0" (es decir, la primera miniaplicación de la página).

Ejemplos:

  • result = jmolScriptWait("load miArchivo.mol") carga el modelo y pone en la variable "result" un texto con los mesajes de estado que, por ejemplo, contiene, entre otras cosas, "FileNotFoundException" si no se ha encontrado el archivo miArchivo.mol.
  • result = jmolScriptWait("show orientation") pone en la variable "result" las instrucciones precisas para restaurar la orientación actual (aunque el texto devuelto puede necesitar ser procesado para que sea válido como instrucción).

Véase también jmolScriptWaitAsArray, a continuación.

jmolScriptWaitAsArray

jmolScriptWaitAsArray(guión, sufijoDiana)

Esta función añade dos mejoras a jmolScript:
1) se espera hasta que el guión se ha ejecutado por completo antes de devolver el control (y así se evita que javascript continúe con otras tareas)
2) si se asigna a una variable, devuelve en ella una matriz de mensajes de estado, que se puede usar para detectar errores o diagnosticar problemas.

Cuando se estén mostrando en la página varias miniaplicaciones JmolApplet, sufijoDiana permite indicar sobre cuál actuará el guión. El valor por defecto de sufijoDiana es "0" (es decir, la primera miniaplicación de la página).

Véase también la función anterior, jmolScriptWait, que devuelve una sola cadena de texto en lugar de una matriz. (De hecho, actúa llamando a jmolScriptWaitAsArray y concatenando sus elementos de matriz con caracteres de salto de línea.)

jmolCommandInput

jmolCommandInput(rótulo, tamaño, id, title)

Muestra una caja de texto de una línea seguida de un botón con el texto rótulo. Cuando el usuario pulse el botón, se ejecutará sobre la miniaplicación cualquier guión escrito en la caja de texto. (Se obtiene, pues, una especie de consola de instrucciones.)
Si en la página hay varias miniaplicaciones Jmol, las instrucciones de la caja de texto se aplicarán a la miniaplicación inmediatamente anterior o a la que haya sido especificada mediante una instrucción jmolSetTarget previa.

Si no se proporciona un rótulo, se usará "Execute".

tamaño es el ancho de la caja de texto (un número de caracteres, por defecto 60).

id se usará para los valores de los parámetros de HTML "id" y "name". Toma por defecto los valores jmolCmd0, jmolCmd1, etc.

Avanzado: Además, la caja de texto y el botón se incluirán en un elemento <span> que tendrá un parámetro HTML id de "span_" seguido del id indicado, y un parámetro HTML title del title indicado.
Los navegadores mostrarán, pues, title en forma de texto flotante o "tooltip" al detener el puntero del ratón sobre la caja de texto o sobre el botón.

jmolSaveOrientation

jmolSaveOrientation(id, sufijoDiana)

Permite guardar la orientación actual del modelo en una variable interna identificada mediante id, de modo que más tarde se pueda recuperar usando jmolRestoreOrientation con el mismo id.

Cuando se estén mostrando en la página varias miniaplicaciones JmolApplet, sufijoDiana permite indicar sobre cuál se actuará. El valor por defecto de sufijoDiana es "0" (es decir, la primera miniaplicación de la página).

jmolRestoreOrientation

jmolRestoreOrientation(id, sufijoDiana)

Permite devolver el modelo a una orientación guardada previamente mediante jmolSaveOrientation con el mismo id.

La reorientación es instantánea. Para obtener una reorientación a lo largo de un tiempo, usa jmolRestoreOrientationDelayed.

Cuando se estén mostrando en la página varias miniaplicaciones JmolApplet, sufijoDiana permite indicar sobre cuál se actuará. El valor por defecto de sufijoDiana es "0" (es decir, la primera miniaplicación de la página).

jmolRestoreOrientationDelayed

jmolRestoreOrientationDelayed(id, demora, sufijoDiana)

Permite devolver el modelo a una orientación guardada previamente mediante jmolSaveOrientation con el mismo id.

La reorientación se extiende a lo largo de demora segundos (el valor por defecto es 1 segundo).

Cuando se estén mostrando en la página varias miniaplicaciones JmolApplet, sufijoDiana permite indicar sobre cuál se actuará. El valor por defecto de sufijoDiana es "0" (es decir, la primera miniaplicación de la página).

Instrucciones avanzadas

jmolDebugAlert

jmolDebugAlert(permitirAvisos)

Hace que se usen diálogos de aviso -o alertas-, útiles para la depuración. Utilízalo con cautela u obtendrás muchos avisos. Para desactivarlo, escribe literalmente: jmolDebugAlert(false)

jmolSetLogLevel

jmolSetLogLevel(n)

Ajusta el nivel de mensajes que se mostrarán en la consola. n varía entre 0 (mñinimo número de mensajes) y 5 (todos los mensajes).

jmolGetStatus

jmolGetStatus(strStatus, sufijoDiana)

(...necesita documentación)

Cuando se estén mostrando en la página varias miniaplicaciones JmolApplet, sufijoDiana permite indicar sobre cuál se actuará (por defecto, toma valor "0", es decir, la primera miniaplicación de la página).

jmolSetTarget

jmolSetTarget(sufijoDiana)

Esto indica sobre qué miniaplicación Jmol deben actuar los siguientes controles. Sólo es necesario si estás mostrando varias miniaplicaciones en la misma página y los controles jmolButton, jmolLink, jmolCheckbox, jmolRadioGroup, jmolMenu, jmolRadio no siguen secuencialmente a la llamada jmolApplet a la que deben estar asociados.

Todas las miniaplicaciones JmolApplet generadas por la biblioteca Jmol.js reciben un identificador interno, que por defecto es un número secuencial a partir de cero. Por lo tanto, para referirte a la primera y la segunda miniaplicaciones de la página debes usar jmolSetTarget(0) y jmolSetTarget(1).
En lugar de mantener la numeración predefinida, puedes proporcionar tus propios sufijos al llamar a jmolApplet y usarlos luego en jmolSetTarget.

jmolRadio

jmolRadio(guión, etiquetaHtml, estáMarcada, separadorHtml, nombreGrupo, id, title)

En primer lugar, intenta por todos los medios usar jmolRadioGroup en lugar de esto. Si tu organización de contenidos no te lo permite, puedes usar esta instrucción para asignar opciones (botones radio) individualmente.

Lee la descripción de los parámetros guión, etiquetaHtml, estáMarcada y separadorHtml en jmolRadioGroup.

Los botones se asignarán al grupo indicado por nombreGrupo. Dicho de otro modo, los botones ligados (los mutuamente excluyentes en su marcado) serán aquéllos que compartan un mismo valor de nombreGrupo.
Si no quieres usar un nombreGrupo, todos los botones se asignarán al mismo grupo (con un nombre asignado automáticamente) hasta que llames a jmolStartNewRadioGroup para comenzar un grupo nuevo.

Si en la página hay varias miniaplicaciones Jmol, las instrucciones del guión se aplicarán a la inmediatamente anterior o a la que haya sido especificada mediante una instrucción jmolSetTarget previa.

Avanzado:
El botón radio, junto con su etiqueta, tendrá un parámetro HTML id de "span_" seguido del id indicado, y un parámetro HTML title del title indicado. Además, el botón tendrá el id indicado como su propio parámetro HTML id.
La etiqueta estará rodeada por etiquetas <label>; el resultado es que haciendo clic sobre el texto de la etiqueta se consigue lo mismo que haciendo clic sobre el propio botón radio.

jmolStartNewRadioGroup

jmolStartNewRadioGroup()

No uses esto salvo que estés trabajando con múltiples grupos de opciones cuya distribución sea tan complicada que no puedas usar jmolRadioGroup.
Lee jmolRadio, justo encima, donde se explica cómo usar esta función.

jmolSetCheckboxGroup

jmolSetCheckboxGroup(chkMaster, chkBoxes)

A partir de casillas de selección insertadas previamente (mediante jmolCheckbox), esta función permite establecer una relación entre una casilla "madre" o "líder" y una o varias casillas "hijas" o "seguidoras", de acuerdo a estas reglas:

  • Cuando se marque la líder, todas sus seguidoras se marcarán automáticamente.
  • Cuando se quite la marca en la líder, todas sus seguidoras perderán su marca automáticamente.
  • Cuando una de las seguidoras se marque o se quite su marca, se examina el estado de sus compañeras; si es el mismo en todas, automáticamente la líder se marcará o perderá la marca.

chkMaster es el identificador (ID) asignado a la casilla que hará de líder. Este identificador puede haber sido asignado cuando se introdujo el jmolCheckbox, o bien puede ser un número. (Si no se especificó un ID, por defecto se asignan identificadores numéricos secuenciales, comenzando por cero.)

chkBoxes es uno o más identificadores o números (separados por comas), indicando las casillas que harán de seguidoras.

Se puede establecer cualquier número de grupos en una página, conteniendo cualquier número de casillas. También es posible anidar unos grupos dentro de otros (es decir, una casilla seguidora en un grupo puede ser a su vez líder de un grupo interior).

Ejemplos:

  • jmolSetCheckboxGroup(0, 1, 4)
    Define la 1ª casilla de la página como líder, la 2ª y la 5ª como seguidoras.
  • jmolSetCheckboxGroup(4, 5, "chkH")
    Define la 5ª casilla como líder, la 6ª y la identificada con "chkH" como seguidoras.
  • jmolSetCheckboxGroup("chkH", "chkMetino", "chkMetil")
    Define la casilla "chkH" como líder, las identificadas con "chkMetino" y "chkMetil" como seguidoras.

jmolCheckBrowser

jmolCheckBrowser(acción, URLoMensaje, ahoraOalClic)

Ejecuta una verificación del navegador web del usuario para comprobar su compatibilidad con Jmol. Asimismo, permite redirigir al usuario hacia un mensaje o página web específicos cuando falle la verificación, explícita o automática, del navegador.

acción debe ser "popup", "redirect" o "alert".
"popup" hará que se abra la dirección URL indicada en URLoMensaje en una nueva ventana del navegador.
"redirect" hará que se abra la dirección URL indicada en URLoMensaje sustituyendo a la página actual.
"alert" mostrará un diálogo de aviso, o alerta de javascript, con el texto indicado en URLoMensaje.

ahoraOalClic debe ser bien "now" u "onClick" (predeterminado). Indica cuándo se debe realizar la verificación del navegador.
"now" indica que se haga inmediatamente.
"onClick" indica que se haga la primera vez que el usuario haga clic en un control, por ejemplo en un jmolButton().

Si no se hace esta llamada y el usuario utiliza un navegador no compatible, aparecerá un mensaje de aviso predeterminado la primera vez que el usuario haga clic en un control de Jmol.

jmolSetDocument

jmolSetDocument(doc)

De modo predeterminado, Jmol.js escribe las miniaplicaciones y los controles en la página. Usando esta función es posible indicar otras dianas:

  • jmolSetDocument(win2.document) escribirá la miniaplicación y los controles en otra ventana (llamada "win2" en este ejemplo)
  • jmolSetDocument(0) o jmolSetDocument(false) desactiva la escritura de código en la página cuando ésta se está cargando. En su lugar, el código se retiene y puede ser devuelto en una variable JavaScript, como por ejemplo:
    var miApplet = jmolApplet(...)
    var miControl = jmolRadioGroup(...)
    variables que más tarde pueden usarse para escribir una página o para escribir en una capa (div), usando JavaScript.

jmolSetAppletWindow

jmolSetAppletWindow(ventanaDiana)

Cada vez que se proporciona una instrucción de Jmol.js que requiere la interacción con la miniaplicación, debe primero localizarse el objeto miniaplicación. Para ello, deben examinarse varias ventanas (o "marcos" de documento, si es que se usan). Por defecto, primero se busca la miniaplicación en la ventana actual, luego en los marcos hijos y finalmente en el marco superior y en sus descendientes. Aunque este procedimiento debería de tener éxito, en ciertas circunstancias puede ser preferible indicar explícitamente qué ventana debe investigarse primero. Esto se hace utilizando la instrucción jmolSetAppletWindow(). El parámetro ventanaDiana debe de ser un objeto de tipo ventana (o marco).

jmolAppletInline

jmolAppletInline(tamaño, modeloEnLinea, guión, sufijoNombre)

Inserta una miniaplicación JmolApplet, pero en lugar de un nombre de archivo o una dirección URL, le pasa el contenido del modelo molecular. Probablemente sólo necesites usar esto si estás sacando los datos del modelo molecular de una base de datos.

guión y sufijoNombre funcionan como en jmolApplet.

Véase además la nota al final de jmolApplet relativa al uso de instrucciones justo tras la llamada a la miniaplicación.

jmolLoadInline

jmolLoadInline(modelo, sufijoDiana)

Se usa en aplicaciones de base de datos en las que el modelo molecular esté disponible en forma de cadena de texto. Esta instrucción carga directamente el modelo a la miniaplicación. Atención: éste no es el nombre del archivo, sino el contenido del archivo.
model puede también ser una matriz de modelos moleculares (entre corchetes y separados por comas), incluso con formatos de archivo diferentes.

sufijoDiana funciona como en jmolScript.

Advertencia:
excepto para la primera miniaplicación de la página, debes indicar un sufijoDiana; el uso de jmolSetTarget no afecta a jmolLoadInline.

jmolLoadInlineScript

jmolLoadInlineScript(modelo, guión, sufijoDiana)

Es similar a jmolLoadInline, pero permite además ejecutar un guión de instrucciones tras la carga de la molécula.

guión y sufijoDiana funcionan como en jmolScript.

Advertencia:
excepto para la primera miniaplicación de la página, debes indicar un sufijoDiana; el uso de jmolSetTarget no afecta a jmolLoadInlineScript.

jmolSetCallback

jmolSetCallback("nombreLlamada", "nombreFunción")

Indica qué función javascript debe llamarse desde Jmol cuando se genere una retrollamada ("callback") del tipo indicado --a continuación hay una lista--.

El nombreFunción debe ir entre comillas dobles. En cada caso, se devuelven varios parámetros que se pasan a la función:

  1. el primer parámetro devuelto es el nombre HTML de la miniaplicación (habitualmente, "jmolApplet0");
  2. el segundo parámetro contiene la información;
  3. se devuelven parámetros adicionales sólo en el caso de algunas retrollamadas (véase a continuación), y contienen información adicional.

Ten en cuenta que todos estos parámetros se devuelven en forma de texto Java, y en general es más seguro convertirlos a texto JavaScript antes de usarlos en la función. Esto se puede hacer así:

 function nombreFunción(a,b,c,d) {
	 var aa = " + a;
	 var bb = " + b;
	 var cc = " + c;
	 var dd = " + d;
	 // aquí van las acciones deseadas, usando aa, bb, cc y dd en lugar de a, b, c y d
	}

Caso especial: si nombreFunción es alert, sólo se envía al usuario el segundo parámetro, mediante una llamada javascript alert(), y no es precisa una función en la página web.

jmolSetCallback debe invocarse antes de jmolApplet. Para definir funciones de retrollamada en cualquier momento tras la carga de la miniaplicación Jmol, utiliza las instrucciones de guiones set animFrameCallback, set hoverCallback, etc. [véanse detalles en la Documentación de guiones interactivos].
Para cancelar la detección de retrollamadas, utiliza set animFrameCallback none etc.

Tipos de retrollamada ("callback"), o valores de nombreLlamada:

animFrameCallback

Se invoca: cuando cambia el fotograma ("frame"). (Aplicable a archivos multi-modelo y a varios archivos cargados.)
Parámetros devueltos (del 2º al 9º):

  • El índice del fotograma actual (comenzando por 0)
  • El número del archivo actual (comenzando por 1)
  • El número del modelo actual dentro del archivo actual (comenzando por 1)
  • El primer fotograma del intervalo de animación, expresado como nArchivo x 1000000 + nModelo
  • El último fotograma del intervalo de animación, expresado como nArchivo x 1000000 + nModelo
  • 0 (si la animación está detenida) o 1 (si está en marcha)
  • La dirección actual de la animación, bien 1 o -1
  • La dirección actual, bien 1 (avanzando) o -1 (retrocediendo)

Nota: Obsérvese que el índice de fotograma no es el mismo número que se se usaría en una instrucción "frame" de guiones. El índice 0 es siempre el primer fotograma, el 1 el siguiente, etc. Si se cargan varios archivos, el tercer fotograma del primer archivo tiene índice 2 pero se accede en un guión mediante "frame 1003" o "frame 1.3".

appletReadyCallback

Se invoca: cuando la miniaplicación ha terminado de cargarse, y también cuando se destruye (esto puede incluir cuando la página se recarga en el navegador). La retrollamada se activa tras ejecutar cualquier guión incluido en la llamada a jmolApplet().
2º parámetro devuelto: el nombre HTML de la miniaplicación, seguido de 2 guiones bajos, el identificador único syncID de la miniaplicación y 2 guiones bajos. Ejemplo: jmolApplet0__2810172796629116__
3er parámetro: verdadero (si se cargó la miniaplicación) o falso (si se destruyó la miniaplicación).

atomMovedCallback

Se invoca: cuando se mueve algún átomo, bien mediante un guión o por una acción del usuario.
2º parámetro devuelto: el BitSet de los átomos que se han movido.

echoCallback

Se invoca: cuando se ejecuta una instrucción echo. Si no se define una función echoCallback, estos mensajes van a la función messageCallback.
2º parámetro devuelto: el mismo texto mostrado en Jmol por la instrucción echo.

evalCallback

(Avanzado) Véase la documentación de guiones (en inglés).

hoverCallback

Se invoca: cuando el usuario detiene el puntero del ratón sobre un átomo.
2º parámetro devuelto: un texto que depende del estado de la etiqueta de "hover" para el átomo señalado (véase más adelante).
3.er parámetro devuelto: índice del átomo, comenzando por 0.

Si la actuación de la función incluye una instrucción jmolScript que establece el texto para "hover", la página web puede controlar en continuo qué se muestra cuando el puntero se detiene sobre un átomo. Por ejemplo:

	function miFunc(a,mens) {
	  var mensaje;
	  var s = "" + mens; // convierte el 2º parámetro en una variable JavaScript de texto
	  if (s.charAt(0) == 'C') {
	    mensaje = "Sí, eso es un carbono.";
	  } else {
	    mensaje = "No, eso no es un carbono. Los carbonos son grises.";
	  }
	  jmolScript('hover "'+mensaje+'"');
	} 
establece el mensaje que se mostrará dependiendo del átomo sobre el que se detenga el puntero.

language

Esta llamada es especial: no se invoca mediante un evento, sino tan sólo intencionadamente, y no devuelve nada. En su lugar, cambia el idioma de la interfaz en el menú emergente de la miniaplicación y en los mensajes de la consola. Debe llamarse antes que jmolApplet. Se puede conseguir lo mismo una vez cargada la miniaplicación, empleando el lenguaje de guiones (por ej., language = "de"), así como desde el propio menú emergente.

El primer parámetro debe ser "language" y el segundo, el código de dos letras (o de 2+2 letras) del idioma deseado (siempre y cuando esa localización esté incluida en Jmol).
Ejemplos:

  • jmolSetCallback("language", "de") (alemán)
  • jmolSetCallback("language", "en") (inglés)
  • jmolSetCallback("language", "es") (español)
  • jmolSetCallback("language", "fr") (francés)
  • jmolSetCallback("language", "pt_BR") (portugués de Brasil)

loadStructCallback

Se invoca: tras la carga con éxito de un archivo.
2º parámetro devuelto: la dirección URL del archivo cargado.
3er parámetro devuelto: el nombre del archivo cargado (sin la ruta).
4º parámetro devuelto: el título interno del modelo en el archivo cargado.
5º parámetro devuelto: mensajes de error que se hayan generado.
6º parámetro devuelto: un código numérico: 3 si el archivo se cargó correctamente, 0 si es modelo se borró, -1 si falló la carga.
7º parámetro devuelto: un texto con el número de modelo o fotograma anterior al carga de este modelo, en formato archivo.modelo (por ej., "3.1", o "1.1 - 3.31" si se cargó un grupo de modelos).
8º parámetro devuelto: un texto con el número del último modelo o fotograma tras cargar el modelo actual, en formato archivo.modelo.
Nota: Si se cargan varios archivos con una sola instrucción "load", sólo se devuelven los datos del último.

measureCallback

Se invoca: cuando el usuario hace una medición. Si no se define una función measureCallback, estos mensajes van a la función messageCallback.
2º parámetro devuelto: un texto indicando el estado de las mediciones.

messageCallback

Se invoca: cuando Jmol genera un mensaje de estado.
2º parámetro devuelto: el mensaje de estado.
Nota: Se generan mensajes:
1) por una instrucción "message"
2) por una instrucción "echo" (incluso si no muesta ningún texto)
3) por las instrucciones "history", "show" y "getProperty"
4) por la instrucción "connect"
5) por la instrucción "set xxxxCallback", excepto si "xxxx" es "animFrame", "hover", "loadStruct", "message" o "pick"
6) por una medición realizada por el usuario tras una instrucción "set picking measure"
7) cuando el usuario elige el primer átomo tras una instrucción "set picking spin"
8) cuando cambia el número de átomos seleccioandos
9) debido a errores durante la ejecución de diversas instrucciones, entre ellas "pmesh", "set"
10) cuando termina la ejecución de instrucciones o guiones ("Script completed", a no ser que haya un error de compilador ("script compiler ERROR:...")
11) cuando se produce un error de ejecución en un guión ("script ERROR:..."), siempre que no haya un error de compilador
12) en diversos puntos tras las instrucciones "set debugScript" o "set loglevel 5"
(La distinción entre errores de compilador y errorres de ejecución es sutil. Con un error de compilador, no se ha ejecutado nada del guión; con un error de ejecución, se ha ejecutado el guión hasta el punto donde se ha producido el error. Durante la compilación, sólo se verifica una parte de la sintaxis de las instrucciones.)

minimizationCallback

Se invoca: en cada iteración de una minimización.
2º parámetro devuelto: un texto indicando el estado actual de la minimización que se esté ejecutando: bien starting (comenzando), running (en marcha) o done (finalizada).
3er parámetro devuelto: el número de la iteración.
4º parámetro devuelto: un número con el valor de energía (E) en esa etapa.
5º parámetro devuelto: un número con la disminución de energía (dE) en esa etapa.

pickCallback

Se invoca: cuando el usuario hace clic sobre un átomo.
2º parámetro devuelto: identificador del átomo, número del átomo y coordenadas xyz, con este formato:
C6 #6 -0.30683374 -1.6836332 -0.716934
3.er parámetro devuelto: índice del átomo, comenzando por 0.

resizeCallback

Se invoca: cuando cambia el tamaño de la miniaplicación.
2º parámetro devuelto: anchura (en píxeles).
3er parámetro devuelto: altura (en píxeles).

scriptCallback

Se invoca: cuando se está ejecutando un guión.
Envía mensajes que indican el estado de la ejecución del guión. Si se ha empleado set debugScript true, se envían las instrucciones del guión línea por línea.
Si no se define una función scriptCallback, estos mensajes van a la función messageCallback.

statusForm, statusText, statusTextarea

Se invoca: cuando se envíe un mensaje a la linea de estado del documento.
2º parámetro devuelto: mensaje de estado
Nota: Estas retrollamadas no invocan realmente funciones, sino que permiten escribir información de estado en cajas de texto (una linea) y áreas de texto (varias llineas) de la página. Antes de jmolApplet, utiliza

	jmolSetCallback("statusForm", "un_nombre_de_formulario")
	jmolSetCallback("statusText", "un_nombre_de_caja_de_texto")
or
	jmolSetCallback("statusForm", "un_nombre_de_formulario")
	jmolSetCallback("statusTextarea", "un_nombre_de_area_de_texto")	
La diferencia es que statusText sustituye el contenido del elemento caja de texto por el mensaje, mientras que statusTextarea añade el mensaje tras el contenido existente. Por tanto, con un guión típico aplicado con éxito, statusText sustituye el texto por "Jmol script terminated". Si hay un error, la caja de texto quedará en blanco. Por el contrario, statusTextarea añade los mensajes, de modo que aparecerá un informe completo en el área de texto.
(Estas funciones no se han probado extensivamente. Pueden ser útiles principalmente en la eliminación de errores. Puede verse un ejemplo de su uso en http://www.stolaf.edu/academics/chemapps/jmol/docs/examples-11/simple2.htm .)

syncCallback

Se invoca: cuando una miniaplicación envía un mensaje de sincronización a otra.
La función JavaScript puede modificar o cancelar el mensaje de sincronización. Si la función devuelve "" o 0, se cancela la sincronización; si devuelve cualquier otro texto, éste sustituye al guión y se envía a las otras miniaplicaciones que estén sincronizadas.

jmolAppletAddParam

jmolAppletAddParam(códigoApplet, nombre, valor)

Añade datos de parámetros a un texto HTML que define una miniaplicación, creado previamente mediante:

	jmolSetDocument(0);
	var codigoA = jmolApplet(....);
	codigoA = jmolAppletAddParam(codigoA, nombre, valor);
para escribirlo luego a la página web mediante
document.write(codigoA)

jmolEvaluate

jmolEvaluate(matemáticaMolecular, sufijoDiana)

Permite extraer a JavaScript (p. ej. a una variable) información de una variable definida en el lenguaje de guiones de Jmol, una expresión matemática de Jmol, o bien alguna información del modelo. Ejemplos:

	alert( jmolEvaluate("a") );
	// Muestra el valor de la variable 'a' si se ha definido en guiones de Jmol.
	alert( jmolEvaluate("{*}.xyz") );
	// Muestra las coordenadas del centro geométrico del modelo.
	alert( jmolEvaluate("{*}.length") );
	// Muestra el número total de átomos del modelo.
	alert( jmolEvaluate("{carbon}.bonds.length.min") );
	// Muestra la longitud de enlace mínima entre átomos de carbono.
	alert( jmolEvaluate("_atomPicked") );
	// Muestra el índice del último átomo sobre el que se pulsó.
	

jmolGetPropertyAsArray

jmolGetPropertyAsArray(clave, valor, sufijoDiana)

Devuelve información de la miniaplicación en forma de una matriz de datos javascript, si es aplicable, o un texto javascript si no lo es. Un ejemplo:

	var atoms = jmolGetPropertyAsArray("atomInfo","all");
	var atom1 = atoms[0];
	var x = atom1.x;
	var info = atom1.info; 

jmolGetPropertyAsString

jmolGetPropertyAsString(clave, valor, sufijoDiana)

Devuelve datos similarmente a jmolGetPropertyAsArray, pero siempre en forma de texto javascript. En el caso de una matriz de datos, el texto se delimita con tabuladores y saltos de línea, para facilitar su lectura.

jmolGetPropertyAsJSON

jmolGetPropertyAsJSON(clave, valor, sufijoDiana)

Devuelve datos similarmente a jmolGetPropertyAsArray, pero siempre en forma de texto javascript en notación JavaScript Object Notation. Ese texto puede luego ser rodeado con paréntesis y evaluado para generar una matriz. Por ejemplo:

var info = jmolGetPropertyAsJSON("filename")
establece que la variable info tenga un valor de
{"filename": "file:/C:/data/caffeine.xyz"}
Luego
var Info = eval("(" + info + ")")
produce una matriz javascript nueva Info que contiene el elemento Info.filename con un valor de "file:/C:/data/caffeine.xyz"

jmolGetPropertyAsJavaObject

jmolGetPropertyAsJavaObject(clave, valor, sufijoDiana)

Devuelve datos en forma de objeto Java (no javascript). Esta función es sólo para usuarios avanzados y en general no se recomienda su uso, pues proporciona un puntero al propio objeto Java, no una copia de éste. Este puntero puede ser o no válido indefinidamente y puede o no sufrir correctamente la "recogida de basura" por parte de todos los navegadores. No se ha probado extensivamente en plataformas diversas. El uso principal de esta función es el acceso a métodos públicos de Viewer que no están disponibles en general a través de la interfaz de la miniaplicación. Por ejemplo:

	var viewer = jmolGetPropertyAsJavaObject("jmolViewer")
	var radius = viewer.getRotationRadius() 
Hay una lista con la mayoría de estos métodos públicos en http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol/src/org/jmol/api/JmolViewer.java?view=markup

jmolDecodeJSON

jmolDecodeJSON(s)

Descodifica un texto en notación JavaScript Object Notation dando un texto javascript legible por personas y ejecutable como javascript. Por ejemplo:

	var info = jmolGetPropertyAsJSON("atominfo", "atomno=1")
	alert(jmolDecodeJSON(info)) 
muestra:
	atominfo=new Array()
	atominfo[0]=new Array()
	atominfo[0].element="hydrogen"
	atominfo[0].visible=true
	atominfo[0].model=1
	atominfo[0].radius=0.5
	atominfo[0].visibilityFlags=13
	atominfo[0].clickabilityFlags=12
	atominfo[0].bondCount=1
	atominfo[0].atomno=1
	atominfo[0].elemno=1
	atominfo[0].z=0.5733036
	atominfo[0].y=-1.1272367
	atominfo[0].x=-3.380413
	atominfo[0].partialCharge=0
	atominfo[0].sym="H"
	atominfo[0].colix=-32767
	atominfo[0].spacefill=60
	atominfo[0].color="ffffff"
	atominfo[0].info="H1 #1"
	atominfo[0]._ipt=0
	atominfo[0].formalCharge=0 	

jmolScriptEcho

jmolScriptEcho(guión, sufijoDiana)

Proporciona una lista en orden inverso, separada en líneas, de todos los textos de tipo 'echo' producidos por el guión, asociado a la miniaplicación JmolApplet indicada.

jmolScriptMessage

jmolScriptMessage(guión, sufijoDiana)

Proporciona una lista en orden inverso, separada en líneas, de todos los mensajes producidos por el guión, asociado a la miniaplicación JmolApplet indicada, terminando con Script completed\n.

Respaldo para hojas de estilo en cascada (CSS)

jmolSetAppletCssClass

jmolSetAppletCssClass(claseCSS)

Indica la clase CSS que se debe asignar a las etiquetas applet generadas por jmolApplet y jmolAppletInline.

jmolSetButtonCssClass

jmolSetButtonCssClass(claseCSS)

Indica la clase CSS que se debe asignar a las etiquetas input generadas por jmolButton.

jmolSetCheckboxCssClass

jmolSetCheckboxCssClass(claseCSS)

Indica la clase CSS que se debe asignar a las etiquetas input generadas por jmolCheckbox.

jmolSetRadioCssClass

jmolSetRadioCssClass(claseCSS)

Indica la clase CSS que se debe asignar a las etiquetas input generadas por jmolRadioGroup y jmolRadio.

jmolSetLinkCssClass

jmolSetLinkCssClass(claseCSS)

Indica la clase CSS que se debe asignar a las etiquetas a generadas por jmolLink.

jmolSetMenuCssClass

jmolSetMenuCssClass(claseCSS)

Indica la clase CSS que se debe asignar a las etiquetas select generadas por jmolMenu.



Alojado en SourceForge Logo