Diseño de páginas web para dispositivos pequeños  

Posted by Danny in

2. DISEÑO DE PÁGINAS WEB PARA DISPOSITIVOS PEQUEÑOS

Como todos los interesados en el diseño y programación web saben, las páginas web se hacen con los llamados lenguajes de aumento de texto, dependiendo del tipo de página se utiliza un lenguaje determinado, aunque todos tienen características similares.

2.1.Lenguajes de aumento o ganancia (markup) de texto

Los lenguajes de aumento de texto, como HTML (Hipertext Markup Language), DHTML (Dynamic HTML), XML (eXtensible Markup Language) y WML (Wireless Markup Language), son lenguajes que, basándose en la utilización de etiquetas (tags), dan al texto simple características especiales, que pueden ir desde mostrarlo con tamaño, alineación o tipo distinto de fuente hasta la creación de enlaces a otros documentos o aplicaciones o bien la generación de formularios gráficos para introducir datos a una base de datos, auxiliándose de otros lenguajes.

2.2.Lenguaje WML

Debido a que el tema que ocupa a este documento es la programación de dispositivos inalámbricos, este capítulo se dedicará a la explicación del lenguaje de diseño web dedicado a ellos, WML.

WML es un lenguaje basado en XML y creado especialmente para el diseño de páginas web para equipos con capacidades de procesamiento, memoria e interfaz limitadas, es decir, para las llamadas PDA, teléfonos celulares y paginadores (pagers).

2.2.1.Cartas y Barajas

Todo el código WML se organiza dentro de una colección de cartas y barajas. Las cartas especifican una o más unidades de interacción con el usuario, por ejemplo un menú de opciones, una pantalla de texto o un campo de entrada de texto. Lógicamente, un usuario navega a través de una serie de cartas de WML, revisando el contenido de cada una de ellas, introduciendo la información requerida, realizando elecciones y moviéndose a otra carta. Las cartas están agrupadas dentro de barajas. Una baraja es la unidad más pequeña WML que un servidor puede enviar al terminal del usuario.

2.2.2.Etiquetas

Al igual que HTML, WML basa su codificación en etiquetas, éstas definen el formato y otras propiedades que tendrá el texto o los objetos que se encuentren dentro de ellas.

Las etiquetas WML se señalan escribiéndose dentro de los signos <>, por ejemplo <etiqueta>, aunque la mayoría de las etiquetas cuentan con apertura y cierre, este último se hace agregando un "/" antes del nombre de la etiqueta y después del signo "<", ejemplo: cierre_de_etiqueta>.

Todo texto u objeto ubicado entre una apertura y un cierre de etiqueta se verá afectado por ella, por ejemplo,

Texto
, hará que "Texto" aparezca en el centro de la pantalla, así como cualquier imagen u objeto que se encuentre dentro de los límites de la etiqueta
.

2.2.3.Etiquetas básicas

2.2.3.1.Obligatorias del documento

-. Con esta etiqueta se debe iniciar cualquier documento WML, indica al navegador que se abrirá un archivo codificado en XML, hay que recordar que es la base de WML.

-http://www.wapforum.org/DTD/WML_1.1.xml">. Se especifica el tipo de XML que se abrirá, WML en este caso y además se indica al navegador la URL que seguirá para la descodificación del lenguaje.

-... . Se escribe después de los dos anteriores, determina el cuerpo principal del documento, cumple la misma función que la etiqueta en ese lenguaje.

-.... Recordemos que una página WML se divide en cartas, esta etiqueta marca los límites de una carta llamada "cartauno". Una página WML puede tener tantas cartas como sean necesarias.

2.2.3.2.De formato de texto

-

...

. Limita un párrafo, en WML todo texto debe estar incluido en un párrafo.

-
. Salto de linea, como en HTML.

-a la cartados. Enlace de hipertexto a una carta llamada cartados, en lugar de "#cartados" puede ir cualquier URL válida.

- . Pone el texto contenido en negritas.

- . Todo texto dentro de esta etiqueta se mostrará en itálicas.

- . Similar a la itálica.

- . Otra opción para letra negrita.

- . Texto subrayado.

- . Letra grande, se debe recordar que se está ante dispositivos con limitantes gráficas, así que no se puede ser muy exigente con los tamaños de letra.

- . Letra pequeña

2.2.3.3.Caracteres especiales

Al igual que en HTML, hay algunos caracteres utilizados por el lenguaje que presentan ciertas dificultades a la hora de mostrarlos en pantalla (", $ #, etc.). En caso de que sea necesario hacerlo se proporciona una lista, en la tabla 2.1, de códigos por los que se deben sustituir los caracteres para que aparezcan sin ningún problema.

Tabla 2.1. Códigos de caracteres especiales.

Signo

Código

Signo

Código

<

< %3c

>

>%3e

'

'

"

"

&

&%26

$

$$%24

[

%5b

]

%5d

/

%2f

\

%55c

?

%3f

;

%3b

:

%3a

^

%5e

@

%40

|

%7c

=

%3d

+

%2b

}

%7d

{

%7b

,

%2c

espacio

%20

#

%23

`

%27

2.2.3.4.Tildes y eñes

En WML se deben sustituir las letras acentuadas y eñes por los siguientes caracteres:

á á Á ` é é

É É í i Í Í

ó ó Ó Ó ú ú

Ú Ú ñ ñ Ñ Ñ

2.2.4.Variables

Una de las grandes diferencias entre el WML y el HTML es que WML permite la definición variables en las cartas, asignarles valores y presentarlos en la pantalla, incluso utilizar las variables en expresiones. Con esto se puede conservar información en el paso de una carta a otra y así dividir el contenido en varios pasos (cosa bastante útil para pantallas tan pequeñas).

Las variables son cadenas de texto case-sensitive (distingue mayúsculas y minúsculas) a la que se le asigna un valor (secuencia de caracteres) o ningún valor.

El nombre de la variable puede empezar por el guión bajo: "_" o una letra, seguida de una o más letras, números o el guión bajo. Ejemplos de nombres de variables válidos: NOMBRE_Usuario, _mivar1, X700II

2.2.4.1.Crear variables y asignarles valores

. Juan es el valor de la variable mivar1. Con setvar se crea la variable y a la vez se le asigna un valor.

Input. Con input se puede crear (declarar) la variable, asignarla un valor y también devolverle el valor original. Input se utiliza para la entrada de datos y esos datos (valores) se asignarán a una variable. Se presenta como un cuadro de texto.

Select. Con select se puede crear (declarar) la variable, asignarle un valor y también devolverle el valor original. Select permite seleccionar al usuario uno o más valores entre una lista de opciones que se asignarán a una variable.

Postfield. Con postfield se puede crear (declarar) la variable, asignarle un valor y también devolverle el valor original.

2.2.4.2.Hacer referencia a variables

Es posible incluir el valor de una variable dentro de un documento WML, tanto para que aparezca en la pantalla como para que se envíe a un programa. Hay tres formas de hacer esto:

1.$nombrevariable. Se utiliza cuando no hay ambigüedad con el nombre de la variable dentro del contexto.

2.$(nombrevariable). Cuando puede existir ambigüedad con el nombre de la variable dentro del contexto.

3.$(nombrevariable:conversión). Cuando se introduce el valor de una variable dentro de una baraja, se puede definir el formato (escape, unescape o no escape) así:

1.$(var:e), $(var:E), $(var:escape): cualquiera de los tres traduce al formato escape[1].

2.$(var:u), $(var:U), $(var:unesc): cualquiera de los tres traduce del formato escape a texto US-ASCII.

3.$(var:n), $(var:N), $(var:noesc): cualquiera de los tres hace que el valor de la variable no se traduzca al formato escape.

WML siempre aplica el formato escape cuando se trata de atributos que trabajan con URLs. Por eso muchas veces se puede asumir que el WML convertirá al formato escape cuando lo tiene que hacer. De todas formas, conviene incluirlo si tenemos mínimas dudas de lo que ocurrirá.

2.2.4.3.Las variables y las tareas , , y

- . No hace nada. Se utiliza para desactivar eventos en el nivel de la baraja.

-. Prev vuelve al anterior URL. Si dentro de prev hay un elemento setvar, como en el ejemplo, se procesa antes de que se ejecute el prev.

-. Refresh refresca los contenidos visibles del navegador. Si refresh contiene un setvar, como en el ejemplo, se procesa el setvar y después se procede al refresh.

-. Go lleva a otra URL u otra carta. Si dentro de Go hay un elemento setvar, se procesa primero éste y después se ejecuta la tarea "Go".

href= "http://www.WMLclub.com/cgi-bin/programa.pl ?x=$(mivar1)&y=$(mivar2)" method="post">

2.2.5.Creación de tablas

El manejo de tablas en WML es similar al de HTML, se define el elemento

y se indican las columnas ("columns"), después se especifican, dentro de cada columna, las filas y los datos que han de llevar.

Aunque el tag de

está recogido en las especificaciones del WML 1.1, existen algunos móviles que no lo implementan, como es el caso del Nokia 7110, en su lugar los datos son mostrados en una tabla de una columna. A continuación vemos un ejemplo de código para creación de tablas:

fila 1, columna 1

fila 1, columna 2

fila 1, columna 3

fila 2, columna 1

fila 2, columna 2

fila 2, columna 3

2.2.6.Manejo de imágenes

En los dispositivos móviles se permite la visualización de imágenes, pero éstas deben estar en formato WBMP, en lugar de las utilizadas en HTML que pueden ser gif, jpg o bmp; aunque algunos de los más modernos equipos ya cuentan con soporte para jpg.

Una imagen WBMP puede ser creada por el diseñador en un programa especial, o bien convertida de otro formato en el mismo programa. Uno de estos programas puede ser Image Magic o bien el incluido en el kit de desarrollo WAP de Nokia.

La forma de incluir una imagen en una página WML es la siguiente:

Movil1

2.3.Scripts en WML (WMLS)

WMLS son las siglas de Wireless Markup Language Script y es un lenguaje de programación que junto con el WML nos permite el diseño de las páginas que se visualizan en los terminales móviles.

El navegador, además de poseer un intérprete para WML, también tiene uno para los scripts. Además del propio lenguaje en sí, este intérprete implementa un conjunto de librerías que permiten a nuestros programas acceder a ciertos servicios del terminal.

El código WMLS debe incluirse en un archivo distinto al WML asociado.

2.3.1.Utilización de WMLScript

Al utilizar WMLS se pretende cubrir los huecos de funcionalidad que deja WML, es decir, se trata hacer con las páginas cosas que resultarían imposibles con el simple WML. Entre las utilidades del WMLScript están las siguientes:

-Validación de los datos de entrada por parte del usuario.

-Manejar mediante código funciones propias del terminal, como realizar llamadas desde el teléfono, enviar mensajes, agregar número de teléfono a la libreta de direcciones y acceder a la tarjeta SIM.

-Realizar alertas, mensajes de error, confirmaciones, etc.

2.3.1.1.Identificadores

Se utilizan identificadores para nombrar las variables, las funciones y los pragmas (información para la unidad de compilación). Estos identificadores tienen las mismas reglas de definición que los nombres de variables en WML, además no pueden ser iguales a una palabra reservada.

2.3.1.2.Comentarios

Los comentarios en el WMLS, son como en el C o en el C++ (una sola línea, empieza por // y más de una línea empieza por /* y termina por */):

//comentario

/*Comentarios de más

de una línea */

2.3.1.3.Caracteres especiales

Al estar basado en WML, el manejo de caracteres especiales se realiza de la misma forma.

NOTA: Los WMLscripts se pueden escribir en cualquier editor de texto normal y corriente. No pueden ser ejecutados sin que sean llamados desde una carta WML.

2.3.2.Primeros pasos

A continuación se muestra un sencillo WMLS que convierte pesos a dólares (suponiendo el tipo de cambio a 11.05 pesos por dólar).

Primero es necesario hacer el WML que recogerá la cifra que se desee pasar a dólares.

"http://www.wapforum.org/DTD/WML_1.1.xml">

Conversor de pesos a dólares

Resultado: $(resultado)

En esta carta se ha creado una variable que se llama cantidad y lleva la cifra a convertir en dólares. Además se incluye una variable, que no tiene nada, llamada resultado. En esta variable se almacenará el resultado en el WMLs siguiente:

extern function calcular(cantidad) {

var dolar = (cantidad/11.05);

var dolarString = String.toString(dolar);

dolarString = String.format("%.2f", dolarString);

WMLBrowser.setVar("resultado", dolarString);

WMLBrowser.refresh();

}

Primero se declara la función, en este caso llamada calcular. La función es extern, esto significa que puede ser llamada desde fuera del archivo WMLS. Esta función recibirá como parámetro la variable cantidad. Al igual que C++ y Java, la función comienza con { y termina con }.

Se declara una variable llamada dólar y se le asigna un valor, en este caso, lo que haya introducido el usuario dividido entre 11.05 (el supuesto valor actual de la moneda estadounidense).

Como el resultado puede tener una cantidad enorme de cifras decimales, primero se convierte a una cadena de texto, con String.toString. El resultado irá dentro de la variable dolarString, después con "%.2f" se indica que el formato será un float (de punto flotante o decimal) con dos cifras después del punto.

Se crea una variable de nombre resultado y cuyo valor es el contenido de dolarString y además se envía a la carta desde la cual fue llamada esta función.

Actualiza el navegador (browser) para que en la pantalla aparezcan los cambios (ahora la variable "resultado" tiene un valor y tiene que aparecer en pantalla)

2.3.2.1.Variables en WMLScript

Las variables deben ser declaradas antes de poder utilizarlas en una expresión. Esta es la forma de declarar una variable:

var NombreVariable;

El nombre de la variable puede llevar caracteres alfabéticos, números y el guión bajo ("_"), pero nunca puede empezar con un número.

En la declaración de una variable puede asignársele un valor inicial. Hay dos formas de hacerlo, con igual resultado:

var a; a = 1;

O esta otra forma:

var a = 1;

También se pueden declarar varias variables a la vez, separadas por comas en la misma instrucción var.

El valor de las variables en el WMLScript sólo duran lo que dura la función en la que son declaradas. Por eso sólo se puede acceder a su valor dentro de la función donde han sido declaradas.

Las variables pueden contener cualquier tipo de datos:

-Boolean (true o false).Ejemplo: var respuesta = true;

-Integer (número entero positivo o negativo, sólo desde -2147483648 hasta el 2147483647). Ejemplo: var num = 7890;

-Float (número decimal, el mínimo es: +-1.17549435E-38 y el máximo es: +-3.402823476E+38).Ejemplo: var num = 6.78;

-String (caracteres alfabéticos, se puede utilizar comillas dobles o simples).Ejemplo: var nombre = "Juan";

-Invalid (para distinguirlo de los otros tipos de datos o para saber por ejemplo cuándo el resultado de una operación se sale de los máximos o los mínimos, un float menor a +-1.17549435E-38, por ejemplo).

Ejemplo: var ex = invalid;

Hay una forma de crear variables globales, esto es, variables que se almacenan en el contexto del navegador y que pueden ser accesadas tanto por las cartas WML, como por las funciones del WMLScript. Estas variables hay que crearlas con la función setVar de la librería WMLBrowser, así:

WMLBrowser.setVar ("nombreVariable", valor);

La variable siempre tiene que tener un valor inicial:

WMLBrowser.setVar ("nombre", 0);

2.3.3.Librerías

WMLScript cuenta con seis librerías, éstas incluyen gran variedad de funciones con las que podemos trabajar, dichas librerías son: lang, float, string, URL, dialogue y WMLbrowser.

2.3.3.1.Lang

Todas las funciones se utilizan como i se hiciera en un entorno orientado a objetos: lang.abs(-9), por ejemplo. Todos los nombres de funciones comienzan con minúscula.

1.Funciones aritméticas:

-abs (número). Calcula y devuelve el valor absoluto.

-max (número1, número2), min (número1, número2). Regresan el mayor y el menor, respectivamente, entre dos números comparados.

2.Funciones de tipos de datos:

-isFloat (valor). Devuelve true si valor puede ser convertido en número con decimales, false si no puede ser convertido e invalid si el sistema no soporta decimales.

-isInt (valor). Es true si el valor puede ser convertido a entero. False si ni puede ser. Invalid si excede los limites antes mencionados.

-parseFloat (cadena de texto). Devuelve un número con decimales, sacado de la cadena de texto. Analiza la cadena de texto y termina en el primer carácter que no sea parte de un número con decimales. Devuelve "invalid" cuando hay un error en el análisis -no encuentra un número con decimales- o el dispositivo WAP no acepta números con decimales.

-parseInt (cadena de texto). Devuelve el número entero, sacado de la cadena de texto. El análisis de la cadena de texto se detiene en el primer carácter que no sea parte de un número con decimales. Devuelve "invalid" cuando hay un error en el análisis -no encuentra un número con decimales-.

3.Funciones de entorno.

Con estas funciones puedes conocer las capacidades del dispositivo WAP en el que se ejecuta el WMLscript.

-CharacterSet(). Devuelve un número entero que es el valor asignado por el IANA (Internet Assigned Numbers Authority) identificando el set de caracteres que soporta el intérprete del WMLScript.

-Float(). Devuelve true si el dispositivo soporta los números con decimales; false, en caso contrario.

-MaxInt(). Devuelve el número entero máximo que acepta el dispositivo (actualmente es 2.147.483.647).

-minInt(). Devuelve el número entero mínimo que acepta el dispositivo (actualmente es -2.147.483.648)

4.Funciones de control de flujo.

Te permite terminar la ejecución del script y devolver el control al lugar desde donde fue llamado (por ejemplo, otra función del mismo WMLscript).

-abort (cadena de texto). Termina "inesperadamente" la interpretación del bytecode del WMLscript y devuelve una cadena de texto describiendo el error. A esta cadena de texto no se puede acceder desde un documento WML.

-exit (valor). Termina "normalmente" la interpretación del bytecode del script y devuelve un valor a la función desde la que fue llamado. A esta cadena de texto no se puede acceder desde un documento WML.

5.Funciones de números aleatorios.

-random(número entero). Devuelve un entero positivo aleatorio entre 0 y el número indicado.

-seed (número entero). Inicia en generador de números aleatorios en el número indicado.

2.3.3.2.Float

1.Funciones de entorno:

-maxFloat(). Devuelve el número positivo decimal máximo. Actualmente es 3.40282347E+38, para todos los dispositivos que disponen de números decimales. Si el dispositivo no los soporta, el resultado será "invalid".

-MinFloat(). Devuelve el número positivo decimal mínimo. Actualmente es 1.17549435E-38 para todos los dispositivos que disponen de números decimales. Si el dispositivo no los soporta, devolverá "invalid".

2.Funciones aritméticas.

-ceil(número). Devuelve el entero menor más próximo a número. Si el número ya es entero, devuelve el mismo número dado.

-floor(número). Es lo contrario de ceil. Devuelve el entero más próximo a número, pero que no sea mayor que él.

-int(número). De un número dado devuelve la parte entera.

-pow (número1, número2). Devuelve el número1 elevado a la potencia número2. Si número1 es negativo, número2 debe ser un número entero. Si número1 es cero y número2 es menor que cero, pow devuelve "invalid".

-round(número). Devuelve el número entero más cercano al número dado. Si dos enteros están igualmente cerca del número, round devuelve el mayor de ellos.

-sqrt(número). Devuelve la raíz cuadrada del número. Si el resultado es menor que cero sqrt devuelve "invalid".

2.3.3.3.String

1.Funciones básicas.

-charAt (cadenadetexto, número). Devuelve el carácter en la posición número de cadenadetexto.

-compare (cadenadetexto1, cadenadetexto2). Compara dos cadenas de texto.

-lenght (cadenadetexto). Regresa la cantidad de caracteres que tiene una cadena.

-isEmpty (cadenadetexto). Devuelve true si la cadena está vacía, false si no lo está.

2.Funciones de subcadena (Substring).

-subString(cadena,Inicio,Longitud). Extrae una subcadena de determinada longitud de caracteres, comenzando en la posición Inicio.

-find (cadena, subcadena). Determina si una subcadena pertenece a una cadena, devuelve True si existe.

-replace (cadena, cadena1, cadena2). Reemplaza en cadena todas las apariciones de cadena1 por cadena2.

3.Funciones de elementos.

-elementAt (cadena, numElemento, separador).

-elements (cadena, separador).

-insertAt (cadena, cadena2, número, separador).

-removeAt (cadena, número, separador).

-replaceAt (cadena, elemento, número, separador).

4.Funciones de conversión:

-format (formatString, valor). Da un formato especifico a un determinado valor.

-toString (valor). Devuelve el valor expresado como cadena de caracteres. Por ejemplo:

a=String.toString(3.5); //a="3.5"

2.3.3.4.URL

La librería URL tiene funciones para manipular y verificar URLs relativos y absolutos. La sintaxis de un URL (definido en detalle en [Request For Comments (RFC) 2396]) es:

://<:port>/;?#

Ejemplo:

http://www.WMLclub.com:80/docs/faqs/index.htm;3;2?id=juan#nombre

Para las funciones que devuelven una cadena que contiene un componente de un URL, los delimitadores de adelante y de atrás no están incluidos en el resultado devuelto. La única excepción es en la ruta (donde se incluyen las diagonales (/)). Hay tres tipos de funciones de la librería URL:

1.Funciones para manejar URLs

Permiten validar, recuperar, crear y convertir a formato escape las URLs:

-escapeString(cadenadetexto).

-getBase().

-GetReferer().

-isValid(url).

-resolve(baseString,incluidoString).

-unescapeString(cadenadetexto).

2.Funciones para extraer componentes.

Se utilizan para recuperar componentes individuales de URLs relativos y absolutos. Estas funciones primero comprueban que el URL es válido, utilizando isValid(), antes de extraer los componentes. Si isValid es "false", estas funciones devolverán "invalid".

-getFragment(cadenadetexto).

-getHost(cadenadetexto).

-getPort(cadenadetexto).

-getParameters(cadenadetexto).

-getPath(cadenadetexto).

-getScheme(cadenadetexto).

-getQuery(cadenadetexto).

3.Funciones para extraer contenido.

Sólo hay una función para extraer contenido de un URL y es la que permite asignar el contenido de un archivo de texto a una variable WMLScript.

loadString(URLString,contentTypeString)

2.3.3.5.Dialogue

Los diálogos son mensajes en pantalla que esperan una respuesta del usuario. La forma en la que aparece en pantalla dependerá de cada micronavegador. Esta librería sólo tiene tres funciones:

-prompt(cadena,cadenaPorDefecto). El texto que sale en pantalla es "cadena" y espera una respuesta por parte del usuario (un input). El valor por defecto del input es cadenaPorDefecto. Devuelve la cadena que el usuario ha introducido.

-confirm(cadena,cadenaOK,cadenaCancelar). El texto que sale en pantalla es "cadena" y despliega dos opciones a elegir ("cadenaOK" y "cadenaCancelar") y espera una respuesta del usuario. La función confirm devuelve "true" si el usuario ha seleccionado OK y "false" si ha seleccionado Cancel.

-alert(cadena). Presenta una cadena de texto y espera la confirmación del usuario. Devuelve una cadena vacía.

2.3.3.6.WMLbrowser

Las funciones de esta librería permiten acceder a las variables de contexto del micronavegador del dispositivo. También permiten ejecutar una tarea cuando el intérprete WMLscript termina su ejecución.

Todas estas funciones devuelven invalid si el micronavegador no soporta WML o si el intérprete de WMLscript no puede ser invocado desde el micronavegador.

1.Funciones de variables.

Permiten leer y escribir variables en el contexto del micronavegador.

- getVar(nombre). Devuelve la cadena que contiene la variable nombre, devolverá una cadena vacía si la variable no existe, "invalid" si nombre no es un nombre de variable apropiado. Ejemplo:

var a = "Hola";

var b = WMLBrowser.getVar(a); // b = "Hola"

- setVar(nombre, valor). Inicia la variable nombre con el contenido de valor, si la operación se realiza con éxito devuelve "True", de lo contrario "False" e "Invalid" si nombre no es un nombre de variable válido. Por ejemplo:

var a = WMLBrowser.setVar(color,azul); // a = true

2.Funciones de tareas.

-go(cadenaURL). Carga el URL dado. Esto sucede cuando el script devuelve el control al navegador. Ej.:

var carta="http://www.WMLclub.com/demos/a.WML#carta2";

WMLBrowser.go(carta);

-prev(). Carga la carta vista anteriormente. Al igual que go(), su efecto se da sólo cuando el WMLscript devuelve el control al micronavegador. Ej.:

WMLBrowser.prev();

-refresh(). Actualiza la carta visualizada. Ej.:

WMLBrowser.refresh();

-newContext(). Vacía el contexto del navegador y devuelve una cadena vacía. Ej.:

WMLBrowser.newContext();

3.Funciones de consulta.

-GetCurrentCard(). Devuelve la carta actual (la que llamó al script) junto con la ruta más corta con respecto a la ubicación del archivo .WMLs. Ej.:

Si www.server.com/a.WML llama a www.server.com/pro.WMLs:

var a = getCurrentCard(); // a = "a.WML"

O si www.serv0.com/a.WML llama a www.serv1.com/test/test.WMLs:

var a = getCurrentCard(); // a = "http://www.serv0.com/a.WML"

[1]Formato adoptado por Internet Society para identificar los caracteres utilizados en las URL, donde se escribe el "%" y el número de carácter, %20 para el espacio, por ejemplo.

Entradas relacionadas:

1 comentarios

Muchas gracias por su ayuda, me sirvió para realizar ciertas búsquedas en la web
saludos!!!

Publicar un comentario