Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sergio Lujan-Programacion de Aplicaciones Web PDF
Sergio Lujan-Programacion de Aplicaciones Web PDF
http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
Creative Commons
Entendiendo que:
Renuncia Alguna de estas condiciones puede no aplicarse si se
obtiene el permiso del titular de los derechos de autor
Dominio Pblico Cuando la obra o alguno de sus elementos se halle
en el dominio pblico segn la ley vigente aplicable, esta situacin no
quedar afectada por la licencia.
Otros derechos Los derechos siguientes no quedan afectados por la
licencia de ninguna manera:
Los derechos derivados de usos legtimosu otras limitaciones
reconocidas por ley no se ven afectados por lo anterior.
Los derechos morales del auto;
Derechos que pueden ostentar otras personas sobre la propia
obra o su uso, como por ejemplo derechos de imagen o de
privacidad.
Aviso Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de la licencia de
esta obra.
Esto es un resumen legible por humanos del texto legal (la licencia completa) disponible en los idiomas siguientes:
Asturian Castellano Cataln Euskera Gallego
Prefacio
Internet y la Web han inuido enormemente tanto en el mundo de la informtica
como en la sociedad en general. Si nos centramos en la Web, en poco menos de 10
aos ha transformado los sistemas informticos: ha roto las barreras fsicas (debido a
la distancia), econmicas y lgicas (debido al empleo de distintos sistemas operativos,
protocolos, etc.) y ha abierto todo un abanico de nuevas posibilidades. Una de las reas
que ms expansin est teniendo en la Web en los ltimos aos son las aplicaciones
web.
Las aplicaciones web permiten la generacin automtica de contenido, la creacin
de pginas personalizadas segn el perl del usuario o el desarrollo del comercio electrnico. Adems, una aplicacin web permite interactuar con los sistemas informticos de gestin de una empresa, como puede ser gestin de clientes, contabilidad o
inventario, a travs de una pgina web.
Las aplicaciones web se encuadran dentro de las arquitecturas cliente/servidor: un
ordenador solicita servicios (el cliente) y otro est a la espera de recibir solicitudes
y las responde (el servidor). En este libro se aborda la programacin de la parte
cliente de las aplicaciones web. Existen multitud de tecnologas que se pueden emplear
para programar las aplicaciones web, como ActiveX o applets, pero no estn tan
estandarizadas como las dos que se muestran en este libro: HTML y JavaScript.
Este libro se complementa con otro de prxima aparicin que tratar la programacin de aplicaciones web desde el punto de vista del servidor. En l se mostrarn
las tecnologas que se emplean para programar los servidores web: CGI, ASP, JSP,
PHP, etc.
Este libro posee diez captulos y tres apndices que denen tres partes. La primera
parte, formada por los cinco primeros captulos, aborda una serie de temas tericos
como son la historia de Internet y la Web, las arquitecturas cliente/servidor en general,
las aplicaciones web como caso particular de las arquitecturas cliente/servidor y la
estructura (fsica y lgica) de un sitio web.
En la segunda parte, formada por los cinco ltimos captulos, se tratan una serie
de temas ms prcticos: el lenguaje HTML, una gua de estilo con consejos que
ayudan a evitar los errores ms comunes a la hora de crear pginas web, los lenguajes
de script en general y un lenguaje de script concreto: JavaScript. Esta segunda parte
iii
Prefacio
iv
naliza con el modelo de objetos de documento, que permite acceder a los elementos
de una pgina web desde un lenguaje de script.
La ltima parte del libro est formada por tres apndices donde se resumen las
etiquetas de HTML y se explica cmo trabajar con los colores en HTML y cmo
depurar errores de JavaScript.
El libro adems posee una serie de ndices (general, de guras, de acrnimos, etc.)
que facilitan la lectura y la bsqueda de informacin.
Para nalizar, quisiera mandar un abrazo a mi familia y a Marisa, la gente que
quiero y que me apoya en mi trabajo. Tambin me gustara agradecer a mi compaero
Jaume Aragons del Departamento de Lenguajes y Sistemas Informticos de la Universidad de Alicante la labor que ha realizado de revisin de este libro y sus valiosos
comentarios que me han permitido mejorar algunos aspectos confusos.
ndice resumido
Prefacio
iii
ndice resumido
ndice general
vii
ndice de cuadros
xiii
ndice de guras
xv
ndice de acrnimos
xxi
1. Introduccin
2. Historia de Internet
3. Arquitecturas cliente/servidor
39
47
61
6. HTML
91
7. Gua de estilo
167
8. Lenguajes de script
175
9. JavaScript
181
239
271
v
vi
ndice resumido
B. Colores en HTML
289
299
Bibliografa recomendada
313
ndice alfabtico
315
ndice general
Prefacio
iii
ndice resumido
ndice general
vii
ndice de cuadros
xiii
ndice de guras
xv
ndice de acrnimos
xxi
1. Introduccin
1.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.
1.3.
Convenciones tipogrcas
. . . . . . . . . . . . . . . . . . . . . . . . .
2. Historia de Internet
2.1.
Historia de Internet
5
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1.
2.1.2.
El primer Internet
. . . . . . . . . . . . . . . . . . . . . . . .
2.1.3.
Protocolos de Internet . . . . . . . . . . . . . . . . . . . . . . .
14
2.2.
Historia de la Web
2.3.
25
2.3.1.
Primera generacin . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.3.2.
Segunda generacin
28
2.2.1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
El primer navegador . . . . . . . . . . . . . . . . . . . . . . . .
22
. . . . . . . . . . . . . . . . . . . . . . . .
2.3.3.
Tercera generacin . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.3.4.
Cuarta generacin
34
. . . . . . . . . . . . . . . . . . . . . . . . .
vii
ndice general
viii
3. Arquitecturas cliente/servidor
39
3.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
3.2.
Separacin de funciones
40
3.3.
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
42
Presentacin distribuida . . . . . . . . . . . . . . . . . . . . . .
42
3.3.2.
Aplicacin distribuida
3.3.3.
Datos distribuidos
. . . . . . . . . . . . . . . . . . . . . . .
43
. . . . . . . . . . . . . . . . . . . . . . . . .
43
3.4.
. . . . . . . . . . . . . . . . . . . .
44
3.5.
44
47
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1.
El cliente
4.1.2.
El servidor
48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
4.2.
4.3.
Entornos web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
52
4.3.1.
52
Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
4.3.2.
Intranet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.3.3.
Extranet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.4.
Ventajas y desventajas . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.5.
54
4.6.
59
. . . . . . . . . . . . . . . . .
61
5.1.
Qu es un sitio web . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
5.2.
63
5.3.
Estructura fsica
5.4.
5.5.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1.
5.3.2.
Enlaces
64
. . . . . . . . . . .
66
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
Estructura lgica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
5.4.1.
71
Estructura secuencial
. . . . . . . . . . . . . . . . . . . . . . .
5.4.2.
Estructura en rejilla
. . . . . . . . . . . . . . . . . . . . . . . .
72
5.4.3.
Estructura en rbol
. . . . . . . . . . . . . . . . . . . . . . . .
76
5.4.4.
Estructura en red . . . . . . . . . . . . . . . . . . . . . . . . . .
76
5.4.5.
Estructura mixta . . . . . . . . . . . . . . . . . . . . . . . . . .
81
5.4.6.
Comparativa
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
5.4.7.
82
Gua de estilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
ndice general
ix
6. HTML
91
6.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
6.2.
Evolucin de HTML
93
6.3.
6.4.
6.5.
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
94
96
97
6.5.1.
. . . . . . . . . . . . . . . . . . . . .
98
6.5.2.
100
6.6.
Metadatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101
6.7.
Etiquetas HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
6.8.
6.9.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Encabezados de secciones
. . . . . . . . . . . . . . . . . . . . .
105
105
6.8.2.
Formatos de caracteres . . . . . . . . . . . . . . . . . . . . . . .
106
6.8.3.
La etiqueta <FONT> . . . . . . . . . . . . . . . . . . . . . . .
108
6.8.4.
111
6.8.5.
Lneas horizontales . . . . . . . . . . . . . . . . . . . . . . . . .
114
Listas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
115
6.9.1.
Listas de denicin . . . . . . . . . . . . . . . . . . . . . . . . .
115
6.9.2.
Listas ordenadas
6.9.3.
Listas no ordenadas
6.10. Colores
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
118
119
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
121
122
6.11. Enlaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122
. . . . . . . . . . . .
122
. . . . . . . . . . . . . . . . . . . . .
123
. . . . . . . . . . . . . .
125
. . . . . . . . . . . . . . . . . .
127
6.12. Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
129
132
. . . . . . . . . . . . . . . . . . . . . . . . . .
134
134
. . . . . . . . . . . . . . . . . . . . . . .
136
. . . . . . . . . . . . . . . . . . . . . . . .
138
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
140
141
143
145
. . . . . . . . . . . . . . . . . . . . . . . . . . .
147
150
. . . . . . . . . . . . . . .
6.14. Formularios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.14.1. Controles de un formulario
. . . . . . . . . . . . . . . . . . . .
150
151
ndice general
153
153
. . . . . . . . . . . . . . . . . . . . . . . .
155
155
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
156
157
6.15. Marcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.15.1. Nombres de destinos especiales
. . . . . . . . . . . . . . . . . .
160
163
165
un enlace
165
7. Gua de estilo
7.1.
167
Gua de estilo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
168
7.1.1.
168
7.1.2.
. . . . . . . . . . . . . . . . . . . . . .
168
7.1.3.
168
7.1.4.
169
7.1.5.
169
7.1.6.
169
7.1.7.
170
7.1.8.
7.1.9.
7.2.
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
170
170
. . . . . . . . . . . . . . . . . . . . . . .
171
171
171
171
171
Accesibilidad
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
172
7.2.1.
173
7.2.2.
174
. . . . . . . . . . . . . . . .
8. Lenguajes de script
175
8.1.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
175
8.2.
. . . . . . . . . . . . . . . . .
176
8.3.
Para qu sirven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
176
8.4.
177
9. JavaScript
9.1.
181
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
182
9.1.1.
183
Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.2.
. . . . . . . . . . .
184
9.1.3.
JavaScript y Java . . . . . . . . . . . . . . . . . . . . . . . . . .
184
ndice general
9.2.
9.1.4.
Versiones
9.1.5.
JavaScript y ECMA
9.4.
9.5.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
9.1.6.
JScript
9.1.7.
El lenguaje
9.2.1.
9.3.
xi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
184
187
187
187
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
189
Caractersticas bsicas . . . . . . . . . . . . . . . . . . . . . . .
189
9.2.2.
Comentarios
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
191
9.2.3.
Declaracin de variables . . . . . . . . . . . . . . . . . . . . . .
191
9.2.4.
. . . . . . . . . . . . . . . . . . . . . .
193
9.2.5.
Caracteres especiales . . . . . . . . . . . . . . . . . . . . . . . .
194
9.2.6.
Operadores
9.2.7.
Palabras reservadas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
195
197
Sentencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
197
9.3.1.
197
Condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.2.
De repeticin . . . . . . . . . . . . . . . . . . . . . . . . . . . .
200
9.3.3.
De manipulacin de objetos . . . . . . . . . . . . . . . . . . . .
205
Funciones
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
208
9.4.1.
. . . . . . . . . . . . . . . . . . . . .
208
9.4.2.
Funciones predenidas . . . . . . . . . . . . . . . . . . . . . . .
209
Objetos
9.5.1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creacin de objetos
. . . . . . . . . . . . . . . . . . . . . . . .
213
213
9.5.2.
Mtodos de un objeto
. . . . . . . . . . . . . . . . . . . . . . .
215
9.5.3.
Eliminacin de objetos . . . . . . . . . . . . . . . . . . . . . . .
216
9.6.
Tratamiento de cadenas
. . . . . . . . . . . . . . . . . . . . . . . . . .
216
9.7.
Operaciones matemticas
. . . . . . . . . . . . . . . . . . . . . . . . .
222
9.8.
Validacin de formularios
. . . . . . . . . . . . . . . . . . . . . . . . .
226
226
9.8.1.
9.8.2.
Validacin alfabtica . . . . . . . . . . . . . . . . . . . . . . . .
228
9.8.3.
Validacin numrica
231
9.8.4.
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
239
10.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2. Modelo de objetos en Netscape Communicator
235
239
. . . . . . . . . . . . .
240
242
. . . . . . . . .
248
. . . . . . . . . . . . . . . . . . . . . . . . . . .
255
256
257
259
262
270
ndice general
xii
271
A.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
272
. . . . . . . . . . .
273
273
274
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
275
275
. . . . . . . . . . . . . . . . . . . . . . .
276
277
278
A.10.Etiquetas de formularios . . . . . . . . . . . . . . . . . . . . . . . . . .
279
A.11.Etiquetas de marcos
282
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
283
A.13.Etiquetas de script . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
284
. . . . . . . . . . . . . . . . . . . . . .
285
. . . . . . . . . . . . . . . . . . . . . . .
286
A.16.Atributos universales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
287
B. Colores en HTML
289
. . . . . . . . . . . . . . . .
289
290
. . . .
290
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
294
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
294
296
299
C.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
299
300
. . . . . . . . . . . . . . . . . . . . .
300
302
304
. . . . . . . . . . . . . . . . . .
305
. . . . . . . . . . . . . . . . . . . . . . . .
308
Bibliografa recomendada
313
ndice alfabtico
315
ndice de cuadros
2.1.
. . . . . . . . . . . . . . . . . . .
6.1.
Versiones de HTML
6.2.
. . . . . . . . . . . .
101
6.3.
Caracteres especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101
6.4.
141
9.1.
. . . . . . . . . . . . . . . . . . . . . . . . . .
185
9.2.
185
9.3.
188
9.4.
188
9.5.
Caracteres especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
195
9.6.
196
9.7.
197
9.8.
. . . . . . . . . . . . . . . . . . . . . . .
223
290
294
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
xiii
. . . . . . . . . . . . . . . . . .
15
94
ndice de guras
2.1.
. . . . . . . . . . . . . . . . .
10
2.2.
11
2.3.
12
2.4.
. . . . . . . . . . . . . .
13
2.5.
16
2.6.
18
2.7.
19
2.8.
20
2.9.
20
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
22
. . . .
23
. . . .
24
. . . . . . . . . . . .
26
. . . . . . . . . . . .
27
. . . . . . . . . . . .
29
. . . . . . . . . . . .
30
32
33
35
36
37
3.1.
Escalabilidad horizontal
. . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.2.
Escalabilidad vertical . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.3.
Separacin de funciones
. . . . . . . . . . . . . . . . . . . . . . . . . .
42
3.4.
Presentacin distribuida . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.5.
Aplicacin distribuida
. . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.6.
Datos distribuidos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
xv
ndice de guras
xvi
3.7.
44
4.1.
48
4.2.
. . . . . . . .
51
4.3.
. . . . . . .
55
4.4.
4.5.
4.6.
57
4.7.
. . . . . . . . . .
57
4.8.
. . . . . . . . . .
58
5.1.
. . . . . . . . . . . . . . . . . . .
66
5.2.
. . . . . . . . . . . . . . . . . . .
67
5.3.
Tipos de enlaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
5.4.
Estructura secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
5.5.
. . . . . . . . . . . . . . . . . . . . .
72
5.6.
. . . . . . . . . . . . . . . . . . . . .
73
5.7.
. . . . . . . . . . . . . . . . . . . . .
74
5.8.
. . . . . . . . . . . . . . . . . . . . .
75
5.9.
Estructura en rejilla
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
76
77
78
79
80
de aplicaciones
. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
56
. . . . . . . . . . . . . . . . . .
80
81
82
83
. . . . . . . . . . . . . . . . .
84
85
86
87
88
6.1.
100
6.2.
Ejemplo de encabezados . . . . . . . . . . . . . . . . . . . . . . . . . .
106
6.3.
107
6.4.
6.5.
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
municator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
108
110
ndice de guras
xvii
6.6.
110
6.7.
111
6.8.
113
6.9.
114
. . . . . . . . . . . . . . . . . . . . . . . . . .
116
117
119
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
. . . . . . . . . . . . . . . . . . . . . . . .
124
124
125
126
127
. . . . . . . . . . . . . . . . . . . . . . .
128
. . . . . . . . . . . . . . . . . . . . . . .
128
. . . . . . . . . . .
130
130
132
. . . . . . . . . . . . . . . . . . . . . . .
134
136
139
140
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
142
142
142
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
144
. . . . . . . . . . . . . . . . . . . .
146
146
146
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
148
6.36. Imagen PNG con transparencias visualizada en Microsoft Internet Explorer 5.5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
148
. . . . . . .
148
. . . . . . . . . . . . . .
150
154
157
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
158
159
160
164
. . . . . . . . . . . . . . . . . . . . .
ndice de guras
xviii
. . . . . . . . . . . . . . . . . . . . .
164
8.1.
180
8.2.
180
9.1.
196
9.2.
. . . . . . . . . . . . . . . . . . .
201
9.3.
204
9.4.
207
9.5.
219
9.6.
227
9.7.
Validacin alfabtica . . . . . . . . . . . . . . . . . . . . . . . . . . . .
231
9.8.
Validacin numrica
235
9.9.
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
238
. . . . . . . . . . . . .
241
246
249
251
253
255
258
260
. . . . .
. . .
260
262
267
269
270
291
. . . . . . . . . . .
. . . .
292
. . . . . . . . . . . . . . . . . . . . . .
293
B.4. Cuadro de dilogo para cambiar colores en Microsoft Internet Explorer 295
B.5. Cuadro de dilogo para cambiar colores en Netscape Communicator
295
301
. . . . . . . . . . . . . . . .
303
305
306
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
307
308
310
ndice de guras
xix
. . . . . . . . . . . .
311
. . . . . . . . . . . .
311
311
C.12.Depurador de Microsoft
312
. . . . . . . . . . . . . . . . . . . . . . . . . .
ndice de acrnimos
ADSL
Tecnologa de comunicacin que permite obtener altas velocidades de transmisin a travs de las lneas telefnicas tradicionales. La comunicacin es asimtrica porque las velocidades de recepcin (128 Kbps hasta 9 Mbps) son mayores
que las de transmisin (16 Kbps hasta 640 Kbps).
API
API facilita la
ARPA
Agencia de Proyectos de Investigacin Avanzados. Agencia creada por el Departamento de Defensa de los Estados Unidos de Norteamrica en 1958. Tambin conocida como
ASP
CGI,
ASCII
xxi
ndice de acrnimos
xxii
de estos cdigos
BMP
Bit-map
Formato grco de mapa de bits estndar en los sistemas operativos Microsoft
Windows. Almacena las imgenes en un formato llamado mapa de bits independiente del dispositivo, que signica que el color de cada punto (pixel ) se
almacena de un modo independiente del mtodo empleado por un dispositivo
para representar el color. Existen diversos formatos: 1 bit (blanco y negro), 4
bits (16 colores), 8 bits (256 colores) y 24 bits (16 777 216 colores).
CERN
Organizacin Europea para la Investigacin Nuclear. Es el mayor centro cientco a nivel mundial dedicado a la fsica de partculas. Su sede central se encuentra en Ginebra, Suiza. Fundado en 1954 por 12 pases, actualmente est formado
por 20 pases, entre ellos Espaa. Tim Berners-Lee, mientras trabajaba en l a
principios de 1990, invent la
CGI
WWW.
CGI
es un programa preparado
para recibir y enviar datos desde y hacia un servidor web segn este estndar.
Normalmente se programan en C o en Perl , aunque se puede usar cualquier
lenguaje de propsito general.
CSP
ASP y
JSP en que la lgica de negocio reside junto con la lgica de datos en el sistema
micas en el servidor. Se diferencia de otras tecnologas similares como
CSS
HTML.
como cada elemento, como por ejemplo los encabezados o los enlaces, se tiene
que mostrar. El trmino en cascada indica que diferentes hojas de estilo se
pueden aplicar sobre la misma pgina.
DARPA
Vase
DHTML
ARPA.
Dynamic HTML
Conjunto de extensiones a
pgina web en el cliente sin necesidad de establecer una nueva comunicacin con
el servidor. Se basa en el uso de
ndice de acrnimos
DLL
xxiii
DLL
DOM
HTML
camente el contenido de una pgina web. Desgraciadamente, los dos navegadores mayoritarios poseen distintos modelos de objetos que en algunas partes son
incompatibles entre s.
GIF
sin prdidas (
HTML
WWW.
junio de 1999). Una de las principales ventajas de esta versin es que soporta
conexiones persistentes: una vez que el navegador se conecta al servidor, puede
recibir mltiples cheros a travs de la misma conexin, lo que aumenta el
rendimiento de la transmisin hasta en un 20 %.
ndice de acrnimos
xxiv
IAP
IDC
ISP.
IMP
ASP.
ISAPI
ISAPI,
determinadas peticiones de los clientes, lo cual facilita la programacin de aplicaciones web. Por ejemplo, la tecnologa
ISP
ISO
IAP.
JPEG
Nombre del comit de expertos que desarroll el formato grco con el mismo
nombre. Se trata de un formato grco de mapa de bits que incorpora compresin de datos con prdidas y permite trabajar con 24 bits de color (color real o
verdadero). El nivel de compresin es variable, por lo que se puede elegir entre
mejor calidad y menor compresin o peor calidad y mayor compresin. Este
formato se suele emplear con imgenes fotogrcas o complejas, pero no es el
adecuado para imgenes sencillas, dibujos o textos.
JSP
ndice de acrnimos
LZW
xxv
GIF de
cobrar un canon (la mayora de la gente no saba que haba sido patentado en
1983). Sin embargo, a partir de 1995 decidi cobrar una tasa y se desat una
gran controversia ya que se haba extendido ampliamente su uso.
MIME
1522.
MIT
MNG
NCP
NCSA
NPL
ODBC
ndice de acrnimos
xxvi
es facilitar el acceso a cualquier dato desde cualquier aplicacin, independientemente del sistema gestor de bases de datos empleado. Para ello, en
ODBCse
ODBC, se puede
cambiar la parte servidor (la base de datos) sin tener que cambiar el cliente,
siempre que todas las partes sean compatibles con
OSI
ISO
ODBC.
de red en siete capas. Los siete niveles, desde el ms inferior (1) al superior (7)
son: fsico, enlace, red, transporte, sesin, presentacin y aplicacin.
PNG
RFC
RFC
recibe un nmero.
RGB
de los tres colores bsicos (primarios) rojo (red ), verde (green ) y azul (blue ).
Se trata de un modelo aditivo (se parte del negro). Mediante la combinacin
adecuada de los tres colores bsicos se consigue todo el espectro de colores.
Adems de
RGB
RPC
ndice de acrnimos
SGML
xxvii
Lenguaje que permite organizar y etiquetar los distintos elementos que componen un documento. Se emplea para manejar grandes documentos que sufren
constantes revisiones y se imprimen en distintos formatos e idiomas. Desarrollado y estandarizado por
SLAC
ISO en 1986.
SSL
TCP/IP
URL
VPN
VRML
.wrl
W3C
WWW.
Su propsito es desarrollar
WAI
WWW
Tambin conocida como la Web o la Red. Sistema mundial de servidores web
conectados a Internet (no todos los ordenadores conectados a Internet forman
ndice de acrnimos
xxviii
parte de la
WWW).
Su protocolo de comunicacin es
de creacin de documentos
recursos
WYSIWYG
HTML
HTTP,
su lenguaje
Una aplicacin es
Captulo 1
Introduccin
En este captulo se realiza una introduccin del libro y se presenta el contenido de
cada uno de los captulos. Adems, tambin se comentan las convenciones tipogrcas
empleadas para distinguir los acrnimos, nombres de programas, etc.
ndice General
1.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Contenido de los captulos . . . . . . . . . . . . . . . . . .
1.3. Convenciones tipogrcas . . . . . . . . . . . . . . . . . .
1
2
3
1.1. Introduccin
Este libro contempla la programacin de la parte cliente de las aplicaciones web. En
el mundo Internet existen muchas tecnologas que se pueden emplear para programar
los clientes web, pero slo dos son las ms extendidas y se pueden considerar el
HTML) y JavaScript.
Este libro no trata sobre diseo grco o artstico de sitios web. Sin embargo, s
que se ofrecen algunos consejos que pueden ayudar a lograr sitios web ms fciles
de usar, prcticos y elegantes. Por ello, me gustara incluir unas palabras de Miguel
Ripoll, uno de los diseadores web de ms prestigio mundial:
A good website has to be fast to download, easy to navigate, appealing to
the eye, on brand and on target, oer something dierent from the rest,
have added value, and constitute a unique user experience. Simple, really.
1
Captulo 1. Introduccin
Un buen sitio web tiene que ser rpido de descargar, fcil de navegar,
atractivo a la vista, centrado en la marca y en el objetivo, ofrecer algo
diferente del resto, tener un valor aadido y constituir una experiencia
nica para el usuario. Simple, en realidad.
Miguel Ripoll,
http://www.miguelripoll.com/
En denitiva, se puede decir que las dos reglas bsicas que hay que tener en cuenta
para desarrollar un sitio web correcto son la simplicidad en el diseo visual y la ecacia
de las herramientas de navegacin y de bsqueda que incorpore.
net. Se comentan los hechos ms importantes y se destacan las personas que ms han
inuido en su desarrollo. Adems, se dedica un apartado especial a la historia de la
Web y se presentan las cuatro generaciones de sitios web que existen actualmente.
En el Captulo 3 (
tpicos de las aplicaciones web: el nivel superior que interacciona con el usuario (el
cliente web, normalmente un navegador), el nivel inferior que proporciona los datos
(la base de datos) y el nivel intermedio que procesa los datos (el servidor web). En
este captulo se describen el cliente y el servidor web y se comentan los entornos web
en los que se ejecutan las aplicaciones web: Internet, intranet y extranet. Adems
se comentan las principales ventajas que poseen las aplicaciones web. Por ltimo se
presenta una metodologa de desarrollo de sitios web.
En el Captulo 5 (
HTML)
se emplea para dar formato a los documentos que se quieren publicar en la World
Wide Web (
WWW).
los documentos con el formato deseado. En este captulo se presentan los conceptos
bsicos y avanzados (enlaces, tablas, marcos, etc.) de
estudio especial de los formularios, ya que son una pieza clave de las aplicaciones web.
1.3.
Convenciones tipogrcas
En el Captulo 7 (
no cometer los errores ms comunes a la hora de crear un sitio web. Adems, tambin
se incluyen una serie de consejos sobre accesibilidad, tanto de cara al usuario como al
navegador.
En el Captulo 8 (
Lenguajes de script)
permiten incluir programacin en las pginas web. En este captulo se explican las
tres formas que existen de incluir y ejecutar cdigo en una pgina web.
JavaScript)
En el Captulo 9 (
vaScript .
guaje estndar. En este captulo se estudian sus caractersticas bsicas, sus diferentes
sentencias, las funciones que incorpora y, por ltimo, como validar formularios.
En el Captulo 10 (
se trata el Modelo
Resumen
de etiquetas HTML) se incluye un resumen de la sintaxis de las etiquetas HTML
macin tratada a lo largo de los captulos. En concreto, en el Apndice A (
en
HTML.
Finalmente, en el Apndice C (
1
2
3
4
5
6
7
8
9
Captulo 1. Introduccin
Cabecera de la pgina
</HEAD>
<BODY>
Cuerpo de la pgina
</BODY>
</HTML>
Los estilos empleados a lo largo del texto son:
Los acrnimos y siglas que guran en el ndice de acrnimos aparecen siempre
destacados en
Graphics
Interchange Format (
Los nombres de los programas se muestran con un tipo de letra sin palo (sans
serif ). Ejemplo: Microsoft Paint, Netscape Navigator, Opera, etc.
Los lenguajes informticos se muestran con un tipo de letra inclinada. Ejemplo:
C, Java, Perl,
etc.
Las extensiones de los cheros, las palabras clave de los lenguajes de pro-
tipo de
.html, <IMG>, var ciudad =
Ejemplo:
Captulo 2
Historia de Internet
En este captulo se presenta una breve historia de Internet. Se comentan los hechos ms
importantes y se destacan las personas que ms han inuido en su desarrollo. Adems, se
dedica un apartado especial a la historia de la Web y se presentan las cuatro generaciones
de sitios web que existen actualmente.
ndice General
2.1.1.
2.1.2.
El primer Internet
. . . . . . . . . . . . . . . . . . . . .
6
7
2.1.3.
Protocolos de Internet . . . . . . . . . . . . . . . . . . . .
14
2.2.1.
El primer navegador . . . . . . . . . . . . . . . . . . . . .
22
2.3.1.
Primera generacin . . . . . . . . . . . . . . . . . . . . . .
25
Segunda generacin
. . . . . . . . . . . . . . . . . . . . .
28
2.3.3.
Tercera generacin . . . . . . . . . . . . . . . . . . . . . .
29
2.3.4.
Cuarta generacin
34
. . . . . . . . . . . . . . . . . . . . . .
Captulo 2.
Historia de Internet
historia de Internet de unas pocas pginas slo se pueden nombrar a las personas ms
importantes.
Como reconocimiento al cambio que Internet ha producido en todos los niveles
TCP/IP).
Protocol (
Vinton Cerf estuvo implicado desde los primeros aos en el desarrollo de ARPANET. En 1973, se uni al proyecto de Robert Kahn de interconexin de redes. Su
mayor contribucin ha sido el desarrollo, junto a Robert Kahn, de
TCP/IP, el pro-
tocolo que gobierna las comunicaciones en Internet y que permite conectar distintas
redes independientes entre s.
Finalmente, Tim Berners-Lee es conocido como el padre de la Web. l fue quien
creo
Transfer Protocol (
de los distintos recursos que forman la Web en Internet. Adems, tambin desarroll
el primer servidor web y el primer navegador/editor web.
2.1.1.
A lo largo de la historia, los medios de comunicacin han evolucionado considerablemente. Se suele citar la capacidad de transmitir el conocimiento de una generacin
a otra como una de las caractersticas que distingue a la especie humana de otras
especies animales, ya que es la clave en el avance de la humanidad.
Distintos acontecimientos han marcado hitos en la comunicacin. Si nos centramos
en los ms importantes que se han producido desde el siglo XIX, destacan por orden
cronolgico:
1 El
premio les fue entregado por el Prncipe de Asturias el 25 de octubre de 2002 en la ceremonia
2.1.
Historia de Internet
2.1.2.
El primer Internet
Las bases del actual Internet se crearon en la dcada de los sesenta. De forma
paralela, y sin que hubiera conocimiento entre ellos del trabajo de los otros, en tres
centros de investigacin se desarrollaron estudios sobre la comunicacin de ordenadores, la redes distribuidas y la conmutacin de paquetes: el Massachusetts Institute
MIT)
of Technology (
2 La
que si se poda poner un satlite, entonces tambin se poda poner un arma nuclear.
Captulo 2.
Historia de Internet
ARPA)
NPL
ARPA.
2.1.
Historia de Internet
Multiple Computer Networks and Intercomputer Communication de Lawrence Roberts, donde se presenta el diseo de ARPANET.
En este conferencia, Lawrence Roberts y Roger Scantlebury se conocen, intercambian ideas y Scantlebury le habla a Roberts de Paul Baran y su trabajo.
1968 (diciembre): La empresa Bolt Beranek and Newman gana la licitacin
IMP
IMP
3 Tambin
10
Captulo 2.
Historia de Internet
2.1.
Historia de Internet
11
12
Captulo 2.
Historia de Internet
2.1.
Historia de Internet
13
1972 (marzo): Ray Tomlinson de Bolt Beranek and Newman crea el primer
programa de correo electrnico.
14
Captulo 2.
Historia de Internet
1974 (mayo): Robert Kahn y Vinton Cerf publican A Protocol for Packet Net-
work Interconnection, en IEEE Transaction on Communications . En este artculo se presenta el primer protocolo de interconexin de redes (TCP). Adems,
aparece por primera vez el trmino Internet.
1978 (marzo): TCP se separa en
CERN).
2.1.3.
Protocolos de Internet
tocolos de comunicacin que permiten el intercambio de informacin de forma independiente de los sistemas en que sta se encuentra almacenada.
TCP/IP constituye
El conjunto de protocolos
serie de servicios.
Como un mismo ordenador puede atender varios servicios, cada servicio se identica con un nmero llamado puerto. Por tanto, a cada protocolo le corresponde un
nmero de puerto. Los protocolos que se encuentran estandarizados poseen un puerto
reservado que no puede emplear ningn otro protocolo.
En el Cuadro 2.1 se muestran los protocolos del nivel 7 ms comunes de Internet
junto con el nmero de puerto que emplean.
Adems de los anteriores protocolos, existen otros menos conocidos que se encuentran en diferentes niveles de la arquitectura
Protocol (ARP), Dynamic Host Conguration Protocol (DHCP), Finger, Gopher, Internet Control Messaging Protocol (ICMP), Internet Relay Chat (IRC), Network File
4 V.G.
Cerf y R.E. Kahn. A Protocol for Packet Network Interconnection. IEEE Transaction on
2.2.
Historia de la Web
Nombre
15
FTP
21
Transferencia de cheros
23
SMTP
25
DNS
53
Resolucin de nombres de
HTTP
80
Transferencia de pginas
POP3
110
Network
NNTP
119
Telnet
co
dominio
HyperText Transfer Protocol
web
trnico
News
Transfer
Protocol
sin
System (NFS), Network Time Protocol (NTP), Routing Information Protocol (RIP)
y Simple Network Management Protocol (SNMP).
HTML como lenguaje para crear los contenidos de la Web, basado en Standard
Generalized Markup Language (SGML).
HTTP como protocolo de comunicacin entre los ordenadores de la Web, encargado de la transferencia de las pginas web y dems recursos.
URL
en Internet.
Los acontecimientos ms importantes en el nacimiento de la Web se remontan a
los aos cuarenta:
1945: Vannevar Bush escribe el artculo As We May Think en The Atlantic
Monthly
5 Vannevar
julio 1945.
Bush. As We May Think. The Atlantic Monthly. Volumen 176, no 1, pginas 101-108,
16
Captulo 2.
Historia de Internet
2.2.
Historia de la Web
17
for the Complex, the Changing, and the Indeterminate . Comienza el desarro-
7
llo del proyecto Xanadu , un sistema basado en hipertexto que nunca lleg a
completarse (an contina su desarrollo).
1967: Andy van Dam y su equipo construyen Hypertext Editing System (HES), el
CERN,
CERN.
6 Ted
Nelson. A File Structure for the Complex, the Changing, and the Indeterminate. 20th Na-
tional Conference ACM, pginas 84-100, New York. Association for Computing Machinery, 1965.
7 http://www.xanadu.net/.
18
Captulo 2.
9
pgina web .
Historia de Internet
8 y se publica la primera
Figura 2.6: Tim Berners-Lee junto a una pantalla de ordenador que muestra su primer
navegador web
WWW en el CERN.
SLAC).
1992: aparecen los primeros navegadores de terceras partes, Erwise, Viola y Midas.
1992: Marc Andreesen y Eric Bina comienzan a trabajar en un nuevo navegador grco para Unix en National Center for Supercomputing Applications
8 nxoc01.cern.ch.
9 http://nxoc01.cern.ch/hypertext/WWW/TheProject.html.
2.2.
Historia de la Web
19
CERN
WWW
podr ser usada gratuitamente por cualquiera, sin tener que pagar ningn tipo
de licencia o canon.
1993 (noviembre):
10 con
la versin 1.0 de este navegador para Microsoft Windows 3.0. En la Figura 2.8 se
muestra la misma pgina visualizada con un navegador actual (la versin 4.78
de Netscape Communicator). Como se puede apreciar, la versin 1.0 de NCSA
Mosaic no estaba preparada para mostrar imgenes Joint Photographic Experts
JPEG),
Group (
10 http://altea.dlsi.ua.es/index_c.html.
20
Captulo 2.
Historia de Internet
2.2.
Historia de la Web
21
W3C).
de los applets .
1995 (agosto): Coincidiendo con el lanzamiento de Microsoft Windows 95, se
presenta Microsoft Internet Explorer 1.0, basado en cdigo licenciado a Spyglass
(que a su vez es una licencia comercial de NCSA Mosaic). A partir de entonces,
comienza la guerra de los navegadores. En la Figura 2.10 se puede ver el cuadro
de dilogo
Explorer 5.5. Se puede comprobar como an esta versin se basa en NCSA Mosaic.
1995 (noviembre): Se lanza al mercado Microsoft Internet Explorer 2.0.
1996 (marzo): Se lanza al mercado Netscape Navigator 2.0. Incorpora nuevas
caractersticas como elementos de
applets programados en
Java,
22
Captulo 2.
Historia de Internet
2.2.1.
El primer navegador
El primer navegador web, que tambin era editor, fue programado por Tim BernersLee a nales de 1990. Al principio lo llam WorldWideWeb, pero despus cambi el
nombre por Nexus, ya que empezaba a usarse World Wide Web para referirse de forma
genrica al sistema de comunicacin que haba ideado.
Este primer navegador se program en Ob jective-C en un ordenador NeXT. Segn Tim, le llev un par de meses programarlo, gracias a que el sistema operativo
NeXTStep facilitaba la programacin al disponer de herramientas para construir los
WYSIWYG), etc.
2.2.
Historia de la Web
23
El men
La
X que tienen las ventanas permite cerrarlas (ms tarde lo copiara Micro-
soft).
tiene la
24
Captulo 2.
Historia de Internet
2.3.
25
Site Design
2.3.1.
Primera generacin
La primera generacin abarca desde el nacimiento de la Web (1992) hasta mediados de 1994. La creacin de pginas web durante esta generacin se ve limitada
por diversas razones tecnolgicas: ancho de banda limitado (mdems de 2.4 Kbps),
navegadores poco desarrollados, monitores monocromos, etc.
Las caractersticas principales de estas pginas son:
Tiempo de carga rpido: son pginas basadas en texto, con muy pocas imgenes
y ningn recurso multimedia.
Navegacin poco estructurada, con falta de coherencia.
Pginas largas, que parece que nunca se acaban. La informacin no se suele
organizar en varias pginas, ya que as se reduce el nmero de transferencias.
Texto escrito como si fuera una hoja de papel: de lado a lado de la pgina y
desde el principio hasta el nal.
Empleo de saltos de lnea como separadores.
Empleo de lneas horizontales para separar secciones en una misma pgina.
Empleo de listas para organizar la informacin.
Poco uso de los enlaces entre pginas de un mismo sitio web.
Como las pginas son muy largas, se emplean muchos enlaces intradocumentales.
Listas interminables de enlaces a otros sitios web.
Se pueden visualizar correctamente casi en cualquier navegador (incluso los navegadores no grcos), pero son aburridas y poco legibles.
Las pginas web poseen un contenido educativo o cientco. Pocas empresas
poseen un sitio web.
11 David
Siegel. Creating Killer Web Sites: The Art of Third-Generation Site Design. Hayden
Books, 1996.
26
Captulo 2.
Historia de Internet
En denitiva, durante este primer periodo, se emplea la Web como si fuera uno de
los medios de comunicacin tradicionales (libros, revistas, etc.). An no se sabe como
aprovechar todas las posibilidades que ofrece la Web.
Respecto a la generacin de las pginas, no existe generacin: las pginas son
estticas. A nales de este primer periodo aparece la tecnologa Common Gateway
Interface (
En la Figura 2.13
12 http://www.luth.se/luth/present/sweden/history/viking_level.
13 http://www.library.cornell.edu/okuref/research/webeval.html.
2.3.
27
28
Captulo 2.
2.3.2.
Historia de Internet
Segunda generacin
14 (bullets ) grcos.
14 Los
topos o bolos son caracteres de imprenta o elementos grcos que representan un gura
geomtrica y que se emplean para destacar el comienzo de un prrafo o apartado, un sumario, las
acepciones de un diccionario, etc.
2.3.
29
En la Figura 2.15
2.3.3.
Tercera generacin
15 http://www.ua.es/ursua/.
16 http://www.cehipar.es/index.htm.
CSS) y
30
Captulo 2.
Historia de Internet
2.3.
HTML.
31
IDC) y luego
ASP), que supone una verdadera revolucin en la creacin
En la Figura 2.17
17 http://www.renault.es.
18 http://www.ua.es/es/index.html.
32
Captulo 2.
Historia de Internet
2.3.
33
34
Captulo 2.
2.3.4.
Historia de Internet
Cuarta generacin
La cuarta y ltima generacin empieza a desarrollarse plenamente en 1999 y discurre hasta la actualidad. Sus caractersticas principales son:
Se vuelven a emplear en exceso los recursos grcos.
En muchos casos se intenta aprovechar hasta el ltimo pixel de la pgina para
presentar informacin.
HTML
DHTML).
HTML (
CSS,
HTML.
19 ): se puede
pertenecientes a la cuarta generacin. En estas pginas podemos detectar las principales caractersticas de esta generacin: uso excesivo de elementos grcos, empleo
de tecnologas multimedia como Macromedia Flash, aprovechamiento hasta el ltimo
pixel de la pgina (en la pgina de la Figura 2.19), etc.
19 En
FutureWave Software,
20 http://www.terra.es.
21 http://www.repsolypf.com/esp/home/home.asp.
22 http://www.mde.es.
2.3.
35
36
Captulo 2.
Historia de Internet
2.3.
37
Captulo 3
Arquitecturas cliente/servidor
Las aplicaciones web son un tipo especial de aplicaciones cliente/servidor. Antes de
aprender a programar aplicaciones web conviene conocer las caractersticas bsicas de las
arquitecturas cliente/servidor.
ndice General
3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2. Separacin de funciones . . . . . . . . . . . . . . . . . . . 40
3.3. Modelos de distribucin en aplicaciones cliente/servidor 42
3.3.1.
Presentacin distribuida . . . . . . . . . . . . . . . . . . .
42
3.3.2.
Aplicacin distribuida
. . . . . . . . . . . . . . . . . . . .
43
3.3.3.
Datos distribuidos
. . . . . . . . . . . . . . . . . . . . . .
43
3.1. Introduccin
1 en la que cada ordenador o proceso en
1 Otro
tipo de arquitectura de red es peer-to-peer (entre pares o de igual a igual), en la que cada
2 Aunque
39
40
Captulo 3.
Arquitecturas cliente/servidor
client ) y los clientes tontos (thin client ). Los primeros son ordenadores completos, con
todo el hardware y software necesarios para poder funcionar de forma independiente.
Los segundos son terminales que no pueden funcionar de forma independiente, ya que
necesitan de un servidor para ser operativos.
Esta arquitectura implica la existencia de una relacin entre procesos que solicitan
clientes)
servicios (
servidores).
Estos
3.2.
Separacin de funciones
41
42
Captulo 3.
Arquitecturas cliente/servidor
3.3.1.
Presentacin distribuida
El cliente slo mantiene la presentacin, el resto de la aplicacin se ejecuta remotamente (Figura 3.4). La presentacin distribuida, en su forma ms simple, es una
interfaz grca de usuario a la que se le pueden acoplar controles de validacin de
datos, para evitar la validacin de los mismos en el servidor.
3.3.
43
3.3.2.
Aplicacin distribuida
3.3.3.
Datos distribuidos
Los datos son los que se distribuyen, por lo que la lgica de datos es lo que queda
separada del resto de la aplicacin (Figura 3.6). Se puede dar de dos formas: cheros
distribuidos o bases de datos distribuidas.
44
Captulo 3.
Arquitecturas cliente/servidor
2.
3.5.
3.
45
El entorno suele ser heterogneo y multivendedor . El hardware y sistema operativo del cliente y el servidor suelen diferir. El cliente y el servidor se suelen comunicar a travs de una Application Program Interface (
RPC)
Call (
3 Se
Captulo 4
ndice General
4.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.1.
El cliente
4.1.2.
El servidor
. . . . . . . . . . . . . . . . . . . . . . . . . . .
48
. . . . . . . . . . . . . . . . . . . . . . . . . .
49
Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
4.3.2.
Intranet . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
4.3.3.
Extranet . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
47
48
Captulo 4.
4.1. Introduccin
Una aplicacin web (web-based application ) es un tipo especial de aplicacin clien-
4.1.1.
El cliente
HTTP2 .
La parte cliente de las aplicaciones web suele estar formada por el cdigo HTML
que forma la pgina web ms algo de cdigo ejecutable realizado en lenguaje de script
del navegador (JavaScript o VBScript ) o mediante pequeos programas (applets ) realizados en Java. Tambin se suelen emplear plug-ins
3 Un plug-in
4.1.
Introduccin
49
contenidos multimedia (como Macromedia Flash ), aunque no se encuentran tan extendidos como las tecnologas anteriores y plantean problemas de incompatibilidad
entre distintas plataformas. Por tanto, la misin del cliente web es interpretar las
pginas
Las tecnologas que se suelen emplear para programar el cliente web son:
HTML.
CSS.
DHTML.
Lenguajes de script: JavaScript , VBScript , etc.
ActiveX .
Applets programados en
Java.
VRML),
etc.
4.1.2.
El servidor
El servidor web es un programa que est esperando permanentemente las solicitudes de conexin mediante el protocolo
sistemas Unix suele ser un demonio y en los sistemas Microsoft Windows un servicio.
La parte servidor de las aplicaciones web est formada por:
Pginas estticas (documentos
nido.
Recursos adicionales (multimedia, documentos adicionales, etc.) que se pueden
emplear dentro de las pginas o estar disponibles para ser descargados y ejecutados (visualizados) en el cliente.
Programas o scripts que son ejecutados por el servidor web cuando el navegador
del cliente solicita algunas pginas. La salida de este script suele ser una pgina
HTML
Inc.
50
Captulo 4.
terface (
ISAPI).
DLL)
ISAPI,
los programa-
para determinados archivos (se ejecutan cuando el cliente solicita un archivo con una
determinada extensin).
Por ejemplo, todo el sistema
a ejecutar
DLL
CGI resultan difciles de mantener, ya que las instrucHTML se encuentran insertadas en el propio cdigo del programa CGI,
CGI
carga del cdigo en memoria que se realiza cada vez que un usuario requiere
su ejecucin. La existencia de mltiples clientes simultneos supone mltiples
copias del programa en memoria del servidor.
La unin de
(estn ms integrados),
ASP,
JSP,
servlets ,
5 En
normalmente se instala en
4.2.
51
El usuario especica en el cliente web la direccin de la pgina que desea consultar: el usuario escribe en el navegador la direccin (
3.
4.
5.
ferencia a otros objetos que se tienen que mostrar con la pgina (imgenes, sonidos, animaciones multimedia, etc.), establece automticamente comunicacin
con el servidor web para solicitar dichos objetos.
52
Captulo 4.
6.
7.
Obsrvese que siempre se libera la conexin, por lo que sta slo tiene la duracin
correspondiente a la transmisin de la pgina solicitada. Esto se hace as para no
desperdiciar innecesariamente el ancho de banda de la red mientras el usuario lee la
pgina recibida.
Cuando el usuario activa un enlace de la pgina, se establece una nueva conexin
para recibir otra pgina o elemento multimedia. Por ello, el usuario tiene la sensacin
de que est disfrutando de una conexin permanente cuando realmente no es as.
Un detalle importante es que para cada objeto que se transere por la red se realiza
una conexin independiente. Por ejemplo, si el cliente web solicita una pgina que
contiene dos imgenes integradas, se realizan tres conexiones: una para el documento
4.3.1.
Internet
ISP)).
Provider (
6 Mediante HTTP
4.4.
Ventajas y desventajas
4.3.2.
53
Intranet
Una intranet es una red de ordenadores basada en los protocolos que gobiernan
Internet (
4.3.3.
Extranet
Una extranet es una intranet a la que pueden acceder parcialmente personas autorizadas ajenas a la organizacin o empresa propietaria de la intranet.
Mientras que una intranet reside detrs de un cortafuego y slo es accesible por las
personas que forman parte de la organizacin propietaria de la intranet, una extranet
proporciona diferentes niveles de acceso a personas que se encuentran en el exterior
de la organizacin. Esos usuarios pueden acceder a la extranet slo si poseen un
nombre de usuario y una contrasea con los que identicarse. La identidad del usuario
determina que partes de la extranet puede visualizar. Adems, para acceder a una
extranet se suelen emplear medios de comunicacin seguros, como Secure Socket Layer
Las extranets se estn convirtiendo en un medio muy usado por empresas que
colaboran para compartir informacin entre ellas. Se emplean como medio de comunicacin de una empresa con sus clientes, proveedores o socios. Las extranets son la
base del comercio electrnico entre empresas (business to business, B2B).
cin por todo el mundo de los estndares y tecnologas que emplea: medio de transporte comn (
estandarizados.
Muchas empresas han descubierto que las anteriores tecnologas se pueden emplear
en las aplicaciones cliente/servidor que emplean. De esta forma nace el concepto de
intranet: usar las tecnologas de Internet para implementar las tradicionales aplicaciones cliente/servidor dentro de una empresa. Adems, una vez que se tiene una
aplicacin que funciona en una intranet, aparece la posibilidad de permitir su uso a
54
Captulo 4.
una empresa .
Una ventaja clave del uso de aplicaciones web es que el problema de gestionar
el cdigo en el cliente se reduce drsticamente. Suponiendo que existe un navegador
o explorador estndar en cada cliente, todos los cambios, tanto de interfaz como de
funcionalidad, que se deseen realizar a la aplicacin se realizan cambiando el cdigo
que resida en el servidor web. Comprese esto con el coste de tener que actualizar
uno por uno el cdigo en cada uno de los clientes (imaginemos que tenemos 2.000
ordenadores clientes). No slo se ahorra tiempo porque reducimos la actualizacin a
una slo mquina, sino que no hay que desplazarse de un puesto de trabajo a otro (la
empresa puede tener una distribucin geogrca amplia).
Una segunda ventaja, relacionada con la anterior, es que se evita la gestin de
versiones. Se evitan problemas de inconsistencia en las actualizaciones, ya que no
existen clientes con distintas versiones de la aplicacin.
Una tercera ventaja es que si la empresa ya est usando Internet, no se necesita
comprar ni instalar herramientas adicionales para los clientes.
Otra ventaja, es que de cara al usuario, los servidores externos (Internet) e internos
(intranet) aparecen integrados, lo que facilita el aprendizaje y uso.
Una ltima ventaja, pero no menos importante, es la independencia de plataforma.
Para que una aplicacin web se pueda ejecutar en distintas plataformas (hardware y
sistema operativo), slo se necesita disponer de un navegador para cada una de las
plataformas, y no es necesario adaptar el cdigo de la aplicacin a cada una de ellas.
Adems, las aplicaciones web ofrecen una interfaz grca de usuario independiente de
la plataforma (ya que la plataforma de ejecucin es el propio navegador).
Una desventaja, que sin embargo est desapareciendo rpidamente, es que la programacin en la web no es tan verstil o potente como la tradicional. El lenguaje
HTML
ponibles para crear formularios. Por otro lado, al principio las aplicaciones web eran
bsicamente de solo lectura: permitan una interaccin con el usuario prcticamente
nula. Sin embargo, con la aparicin de nuevas tecnologas de desarrollo como Java,
JavaScript
7 Pensemos,
por ejemplo, en los ejecutivos que tienen que desplazarse entre distintos pases, pero
4.5.
1.
55
HTTP,
HTTP
ASP y PHP.
2.
ASP y PHP.
3.
HTTP y se incluye el
56
Captulo 4.
JSP.
Figura 4.5: Arquitectura de las aplicaciones web: todo en un servidor, con servicio de
aplicaciones
4.
5.
JSP.
Todo separado (Figura 4.7): las tres funcionalidades bsicas del servidor web se
separan en tres servidores especcos. La tecnologa que emplea esta arquitectura
es
JSP.
HTTP, lgica de
HTTP hace falta un ordenador con una buena conexin a Internet, rpido
4.5.
57
Figura 4.6: Arquitectura de las aplicaciones web: separacin servidor de datos, con
servicio de aplicaciones
58
Captulo 4.
HTTP
del
resto de servicios es la nica opcin disponible. Por ejemplo, en los sistemas heredados
(legacy systems ), donde ya existe una lgica de negocio en un servidor de aplicaciones
y una lgica de datos en un servidor de bases de datos, la nica forma de acceder
desde Internet al sistema heredado es a travs de un servidor que ofrezca el servicio
de
ODBC, lo que
4.6.
59
en el sistema gestor de bases de datos (es el encargado de ejecutar los procesos que
implementan la lgica de negocio). Gracias a ello, la comunicacin entre los procesos
de la lgica de negocio y los datos es muy rpida, ya entre ambos se puede establecer
una comunicacin interproceso.
2.
ASP, CGI,
A continuacin se disea la estructura lgica o de navegacin del sitio web: pgina inicial, pgina principal, empleo de marcos, los mens, divisin en secciones,
relacin entre las distintas secciones, pgina de novedades, etc.
4.
Se dene la estructura fsica, que puede ser igual a la lgica o totalmente independiente.
5.
Se crean los contenidos del sitio web. Si se emplea una base de datos, se realiza
la carga de datos.
6.
7.
8.
9.
60
Captulo 4.
Puesta en marcha.
Captulo 5
ndice General
. . . . . . . .
66
5.3.2.
Enlaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
Estructura secuencial
. . . . . . . . . . . . . . . . . . . .
71
5.4.2.
Estructura en rejilla
. . . . . . . . . . . . . . . . . . . . .
72
5.4.3.
Estructura en rbol
. . . . . . . . . . . . . . . . . . . . .
76
5.4.4.
Estructura en red . . . . . . . . . . . . . . . . . . . . . . .
76
5.4.5.
Estructura mixta . . . . . . . . . . . . . . . . . . . . . . .
81
5.4.6.
Comparativa
. . . . . . . . . . . . . . . . . . . . . . . . .
81
5.4.7.
82
62
HTML
Poco texto, pero muchas imgenes, grcos animados, sonidos o incluso vdeos.
Algunas pasan (saltan) automticamente a la pgina principal, pero en otras
el usuario tiene que pulsar en un enlace para cargar la pgina principal.
En algunos casos la pgina inicial se convierte en un tunel de entrada: una
presentacin que dura bastante tiempo (ms de 15 segundos), que suele estar
realizada con mltiples pginas o con una sola pgina que emplea tecnologa
multimedia (como Macromedia Flash). En estos casos, suele existir un enlace
para evitar el tunel de entrada y saltar directamente a la pgina principal.
front page o main page en ingls, es la pgina que funciona como ndice o tabla de
contenidos del sitio web. A travs de esta pgina, el resto de documentos del sitio web
es accesible de una forma directa o indirecta. Por tanto, la pgina principal tiene la
funcin de guiar y dirigir al usuario a otras pginas del sitio web. La pgina principal
tiene que ser clara y no crear confusin con innidad de opciones (si las opciones son
abundantes signica que la clasicacin de la informacin no ha sido la correcta).
5.2.
63
Quienes somos?
Informacin de contacto.
Historia de la compaa.
Objetivos.
Cartera de clientes.
Productos o servicios.
...
Peridicos:
Editorial.
Noticias internacionales.
Noticias nacionales.
Deportes.
...
Centros educativos:
Personal.
Profesores.
Estudiantes.
Planes de estudio.
...
64
Portal genrico:
Noticias.
Canales.
Correo.
Chat.
...
Por otro lado, los contenidos especcos son aquellos que incorpora cada sitio web
como propios y que no tienen porqu encontrarse en otros sitios web de la misma categora. Por ejemplo, un peridico digital puede decidir ofrecer a sus lectores una cuenta
de correo electrnico gratuita, un servicio que no se suele encontrar normalmente en
los peridicos digitales, pero que s que es comn en los portales.
En general, lo ms adecuado es mostrar primero la informacin ms general y
luego, si as lo solicita el usuario, facilitar informacin ms detallada.
El contenido de un sitio web se tiene que cuidar mucho. Supongamos una empresa
que vende productos. En el mundo real, el cliente puede probar el producto que desea
comprar: por ejemplo, si se desea comprar un televisor, se puede encender, escuchar
su calidad de sonido y ver su imagen, juguetear con sus funciones y en denitiva
comprobar el grado de satisfaccin que se obtiene. Adems, el cliente tiene un trato
directo con el personal de la empresa. Sin embargo, en el mundo virtual de Internet
todo eso es imposible: el usuario no puede saber si le satisface un producto hasta que
lo haya recibido. Por ello, la decisin de comprar un producto se basa tambin en
criterios que son ajenos al propio producto, como puede ser la imagen que proyecta
la empresa, el aspecto de la pgina web, o las recomendaciones de otras personas que
hayan quedado satisfechas con el producto. Este ltimo aspecto es muy importante
en Internet: la delizacin del cliente. Gracias a la personalizacin de un sitio web, se
puede adecuar el sitio web al perl de cada cliente.
Un mismo contenido se puede clasicar en distintas categoras. Por ejemplo en el
caso de un sitio web que sea un buscador de servicios, un cibercaf se clasicara
en restaurantes o en entretenimiento? En cafeteras o en tiendas de informtica? En
caso de duda, lo mejor es incluir la misma informacin en las distintas categoras
posibles y no exclusivamente en una sola. Hay que tener en cuenta que la gente suele
emplear distintos nombres para el mismo concepto y un mismo concepto lo pueden
clasicar en distintas categoras.
5.3.
Estructura fsica
65
de vdeos, etc.
Por el nivel de acceso (visibilidad). Por ejemplo, parte pblica, parte privada de
los clientes, parte privada de los administradores, etc.
Por el contenido. Por ejemplo, una empresa que vende productos puede organizar los cheros segn la informacin que contienen: los cheros de la familia de
productos A en un directorio, los cheros de la familia de productos B en otro
directorio, etc.
Por la fecha. Por ejemplo, el sitio web de una revista puede organizar los cheros
segn la fecha de publicacin.
Por su propietario. Por ejemplo, una empresa puede organizar los cheros segn
el departamento al que pertenecen: departamento A, departamento B, etc.
Por su estructura lgica o de navegacin. La estructura fsica puede ser una
copia de la estructura lgica.
Por ejemplo, en la Figura 5.1 (a), el sitio web se ha organizado fsicamente en
funcin de su contenido: informacin sobre la empresa (acercade), el catlogo, los
clientes e informacin de contacto. En la Figura 5.1 (b), el sitio web se ha organizado
66
en funcin del tipo de chero (asp, html, etc.) en un primer nivel y en funcin del
nivel de acceso (privado y pblico) y del tipo de chero (gif, jpg y png) en un segundo
nivel.
En la Figura 5.2 (a), el sitio web se ha organizado en funcin de su contenido en un
primer nivel y en funcin del tipo de chero en un segundo nivel. En la Figura 5.2 (b),
el sitio web se ha organizado en funcin del nivel de acceso en un primer nivel y en
funcin del tipo de chero en un segundo nivel.
(a)
(b)
Sin embargo, no hay que abusar de los directorios y crear estructuras de directorios
muy profundas, ya que cada directorio que se crea aade unas letras ms a la
URL:
tanto el creador del sitio web como el usuario nal tendrn problemas a la hora de
recordar una
5.3.1.
URL.
El nombre de los directorios y de los cheros es un aspecto que tambin hay que
tener en cuenta, ya que es importante tanto para el desarrollador del sitio web como
para los futuros visitantes (usuarios). Por un lado, se tienen que elegir nombres intuitivos, que expresen el contenido o la funcin de un chero, ya que as el desarrollador
cuando tenga que mantener el sitio web no tendr que pararse a pensar que contiene
cada directorio o chero.
5.3.
Estructura fsica
67
(a)
(b)
68
Por otro lado, tambin es importante para la gente que visite el sitio web. Por
qu? Aunque los nombres de los directorios y de los cheros slo se van a ver en la
URL y se puede creer que nadie se ja en ella, a veces los usuarios toman nota de
ella (la copian por escrito) o incluso la emplean para navegar libremente.
http://www.electro-abc.es/electronica/videos/sonic1430.html.
En esta pgina se muestran las caractersticas del vdeo Sonic 1430. El usuario
puede ser que modique la
URL y escriba:
http://www.electro-abc.es/electronica/videos/
con la esperanza de obtener una pgina con una lista de todos los vdeos, o que incluso
escriba:
http://www.electro-abc.es/electronica/
para obtener una lista completa de todos los dispositivos electrnicos.
Si la
URL
el contenido que desean obtener, y tales barreras se tienen que evitar siempre que se
pueda.
Por otro lado, hay que tener mucho cuidado con los caracteres que se emplean
en los nombres de los directorios y de los cheros, ya que cada sistema operativo
permite un conjunto de caracteres distintos. Nunca se deben usar espacios en blanco
o caracteres especiales como
&, %, #,
Un problema muy comn con los sistemas operativos Microsoft Windows es que
no distinguen maysculas y minsculas, aunque s que permiten escribir los nombres
de los cheros mezclando maysculas y minsculas. Es decir, el nombre de un chero
puede ser
cheros
el mismo nombre y, por tanto, el mismo chero. Esta caracterstica suele originar
problemas al mover un sitio web de un sistema operativo Microsoft Windows a Unix.
Por ejemplo, si en un enlace se escribe el nombre de un chero en maysculas, pero
realmente el nombre del chero est en minsculas, en el servidor web con Microsoft
Windows el enlace funciona correctamente, pero en el que tiene Unix no, ya que en
este ltimo sistema operativo s que se distinguen completamente las maysculas y las
minsculas. Por tanto, es conveniente ser consistente y escribir siempre los nombres
de los directorios y de los cheros en minsculas (lo ms adecuado) o en maysculas,
pero nunca mezclar las dos formas.
5.3.
Estructura fsica
5.3.2.
69
Enlaces
Los enlaces
1 son un elemento clave en la web, ya que son los que permiten crear
http://www.otrositio.es/dir/recurso.xxx
Sin embargo, cuando se crea un enlace a un recurso en el mismo sitio web, se
puede hacer absoluto (dos tipos) o relativo:
Absoluto 1: similiar al enlace a otro sitio web. Se indica el nombre del sitio
actual y la ruta completa al recurso. Todos los enlaces de este tipo comienzan
/. Por ejemplo:
/dir/recurso.xxx
a.html
del directorio
dir
b.html
del mismo
b.html
../dir-b/b.html
la barra que se emplea en las rutas en los sistemas operativos Microsoft Windows con
la barra que se emplea en los sistemas Unix y en la
URL.
Dos son las ventajas que se obtienen al emplear los enlaces relativos. Por un lado,
hay que escribir menos en los enlaces (las
1 Enlace
URL
se reere a cualquier referencia a un chero desde una pgina, ya sea mediante la etiqueta
etc.
70
facilita el transporte del sitio web entre distintos servidores o directorios: los enlaces
siguen funcionando.
En la Figura 5.3 se resumen los distintos tipos de enlace que se han presentado.
5.4.
Estructura lgica
71
5.4.1.
Estructura secuencial
2
Tutorial de Yahoo! entrada y registro donde se explica el proceso de obtencin de un
Yahoo! Espaa . Este sitio web posee una gua para nuevos usuarios llamada
identicador para emplear los servicios de Yahoo!. Esta gua presenta una estructura
secuencial, ya que el usuario slo la puede visualizar en el orden secuencial establecido por su creador. Por ejemplo, en la Figura 5.5 podemos ver la primera pgina web
Cmo
obtengo una ID?). Al pulsar sobre ese enlace, se pasa a la segunda pgina que se
2 http://www.yahoo.es.
72
muestra en la Figura 5.6; en esta pgina existe un enlace para pasar a la siguiente p-
gina (
se puede apreciar como las pginas presentan la misma estructura (un enlace para
volver a la pgina anterior y otro para pasar a la siguiente), pero adems incorporan
un enlace para volver al principio de la gua (
5.4.2.
Estructura en rejilla
La estructura en rejilla (grid structure ) se emplea cuando existen estructuras secuenciales paralelas. Casos tpicos de esta estructura son los sitios web escritos en
varios idiomas, de forma que la misma pgina se puede consultar en otros idiomas, o
los sitios web que ofrecen cada pgina en distintos formatos (por ejempo, formato de
5.4.
Estructura lgica
73
74
5.4.
Estructura lgica
75
76
5.4.3.
Estructura en rbol
5.4.4.
Estructura en red
3 http://revista.consumer.es.
5.4.
Estructura lgica
77
78
5.4.
Estructura lgica
79
80
(a)
(b)
5.4.
Estructura lgica
81
estructuras, el sitio web suele tener varias pginas de inicio, tal como se observa en la
Figura 5.15.
5.4.5.
Estructura mixta
En realidad, las cuatro estructuras que se han comentado son ideales: en el mundo
real suelen aparecer mezcladas entre s, tal como se muestra en la Figura 5.16. Por
ello, lo ms comn es que la estructura de un sitio web sea mixta.
5.4.6.
Comparativa
82
5.4.7.
4 (breadcrumb trail )
Inicio > Internet y ordenadores > Formatos > HTML > HTML Dinmico
Una variante de este esquema consiste en no tener en cuenta las pginas por donde
ha pasado el usuario, sino mostrar el rastro de las pginas por el nivel actual en la
jerarqua de navegacin que conducen a la pgina principal. As se consigue mostrar
el contexto de la pgina actual respecto al conjunto de pginas del sitio web. Cada
4 Por
5.4.
Estructura lgica
83
nivel de la lista es una enlace a la pgina principal de dicho nivel. Este esquema es el
adecuado para aquellos sitios web donde la informacin se estructure de una forma
jerrquica.
Por otro lado, en el esquema de numeracin de los pasos, se muestra una lista
con todos los pasos necesarios para completar un proceso (por ejemplo, comprar un
producto o registrarse en un servicio de correo electrnico). Adems, se muestra en
todo momento el paso en el que se encuentra el usuario. De este modo, el usuario sabe
cuanto queda para terminar el proceso. Esta caracterstica contrasta con los procesos
en los que no se indica nada y el usuario no sabe cuantas veces tiene que pulsar el
botn
Siguiente
primer paso (de cuatro) para obtener una cuenta de correo electrnico en
mail.com.
En este paso el usuario tiene que elegir qu direccin de correo electrnico desea
(nombre de usuario y dominio). En la parte superior de la pgina se muestra que el
proceso se compone de cuatro pasos y que en la actualidad se encuentra en el primer
paso. En la Figura 5.20 se muestra el segundo paso: el usuario tiene que introducir
sus datos personales. En el tercer paso, que se muestra en la Figura 5.21, el usuario
selecciona las listas de distribucin de correo electrnico a las que se desea subscribir.
Por ltimo, la Figura 5.22 muestra el ltimo paso que es la seleccin del tipo de
servicio de correo electrnico (gratuito o de pago).
84
5.4.
Estructura lgica
85
86
5.4.
Estructura lgica
87
88
5.5.
Gua de estilo
89
5 la capacidad
5 George
A. Miller. The magical number seven, plus of minus two: Some limits on our capacity
for processing information. Psychological Review, 63, pginas 81-97, marzo 1956.
Captulo 6
HTML
HTML es un lenguaje de marcas (etiquetas) que se emplea para dar formato a los
documentos que se quieren publicar en la WWW. Los navegadores son capaces de interpretar las etiquetas y mostrar los documentos con el formato deseado. En este captulo
se presentan los conceptos bsicos y avanzados (enlaces, tablas, marcos, etc.) de HTML.
Adems, se realiza un estudio especial de los formularios, ya que son una pieza clave de
las aplicaciones web.
ndice General
6.1.
6.2.
6.3.
6.4.
6.5.
Introduccin . . . . . . . . . . .
Evolucin de HTML . . . . . . .
Clasicacin de las pginas . . .
Qu necesito para usar HTML
Conceptos bsicos de HTML .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
93
93
94
96
97
6.5.1.
. . . . . . . . . . . . . . . . . .
98
6.5.2.
100
6.8.1.
Encabezados de secciones
. . . . . . . . . . . . . . . . . .
105
6.8.2.
Formatos de caracteres . . . . . . . . . . . . . . . . . . . .
106
6.8.3.
La etiqueta <FONT> . . . . . . . . . . . . . . . . . . . .
108
6.8.4.
111
6.8.5.
Lneas horizontales . . . . . . . . . . . . . . . . . . . . . .
114
92
Captulo 6. HTML
6.9.1.
Listas de denicin . . . . . . . . . . . . . . . . . . . . . .
115
6.9.2.
Listas ordenadas
118
6.9.3.
Listas no ordenadas
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
119
121
122
. . . . . . . . .
122
. . . . . . . . . . . . . . . . . .
123
. . . . . . . . . . .
125
. . . . . . . . . . . . . . .
127
132
. . . . . . . . . . . . . . . . . . . . . . .
134
134
. . . . . . . . . . . . . . . . . . . .
136
. . . . . . . . . . . . . . . . . . . . .
138
141
143
. . . . . . . . . . . . . . . . . . . . . . . .
145
147
150
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
151
153
. . . . . . . . . . . . . . . . . . . . .
153
155
. . . . . . . . . . . . . . . . . . . . . .
155
. . . . . . . . . . . . . . . . . . . . . . . .
156
157
. . . . . . . . . . . . . . .
163
. . . . . . . . . . . . . . . . . . . . . . .
165
165
6.1.
Introduccin
93
6.1. Introduccin
Las pginas web o pginas HTML son unos cheros escritos en el lenguaje
HTML. El desarrollo de estas pginas abarca un amplio grupo de tecnologas, desde
las pginas ms sencillas que slo usan el lenguaje HTML hasta las ms complejas que usan DHTML, CSS, JavaScript , applets realizados en Java o componentes
ActiveX .
El lenguaje
colores, imgenes, listas de elementos, tablas, etc. Su modo de empleo es muy sencillo:
se basa en el uso de etiquetas que indican que elementos contiene cada pgina, el
formato que hay que aplicar a cada uno de ellos y como se tienen que distribuir por
la pgina.
HTML
va ligado al de la
WWW.
sitan en 1991, en los trabajos que llevaba a cabo Tim Berners-Lee y sus compaeros
en el
CERN en Suiza. Uno de los primeros artculos en los que muestran sus ideas es
1
de etiquetas que simplican la estructura de los documentos y las reglas no son tan
estrictas como en
SGML.
1 Tim
W3C.
DARPA)
The Information Universe. Electronic Networking: Research, Applications and Policy, Vol. 1, No. 2,
Meckler, Westport CT, primavera 1992.
94
Captulo 6. HTML
Fecha
Versin
Noviembre 1995
HTML 2.0
Enero 1997
HTML 3.2
Diciembre 1997
HTML 4.0
Diciembre 1999
HTML 4.01
Enero 2000
XHTML 1.0
Agosto 2002
Agosto 2002
XHTML)
HTML.
Todas las etiquetas tienen que aparecer por parejas (inicio y n) o como etiquetas
vacas.
3 Algunas
versiones, como
HTML+
HTML
6.3.
95
Estticas. Poseen un contenido jo, todos los usuarios que las consultan reciben
la misma informacin. El usuario recibe en su navegador la pgina del servidor
Por otro lado, segn como se visualizan las pginas en el cliente, se clasican en:
o plug-
4 Las
pginas estticas tambin pueden mostrar datos procedentes de una base de datos mediante
HTML
de forma manual,
automticamente cuando ocurre un suceso o a una fecha y hora dadas (por ejemplo, todos los das
a las tres de la maana). Esta tcnica es adecuada para catlogos, listas de precios, directorios
telefnicos, etc., que no se modican muy a menudo.
96
Captulo 6. HTML
HTML,
HTML.
Los documentos
HTML
tie-
nen un formato de texto plano (American Standard Code for Information Interchan-
ge (
ASCII)), por lo que todo lo que se necesita es un editor (como el Bloc de notas
de Microsoft Windows) para crear las pginas y un navegador (como Microsoft Internet Explorer) para verlas. Podemos crear, vincular y probar documentos
HTML
HTML,
HTML.
HTML y
con algunos botones que insertan en un documento las etiquetas ms comunes. Otros,
suelen incluir la caracterstica syntax highlight : signica que el editor es capaz de
comprender el lenguaje en el que se programa, y colorea las palabras diferencindolas
segn sean etiquetas, atributos, comentarios, etc. Otros ms avanzados ofrecen la
opcin de completar las etiquetas o muestran una ventana de ayuda con los atributos
que posee cada etiqueta.
Por otro lado, los programas de diseo muestran la pgina
HTML
de forma
grca y en tiempo real: es posible desplazar los distintos elementos que la componen
(tablas, imgenes, texto), modicar sus propiedades (tamao, color, tipo de letra) y
crear efectos avanzados. Son programas del tipo
6.5.
97
mejores programas de esta clase destacan Adobe Golive, Claris Home Page, Macromedia
DreamWeaver y Microsoft FrontPage.
Conviene aclarar desde un principio que lo nico que da formato a una pgina web
es una etiqueta
HTML.
HTML
suele ser
.html
.htm5 .
Se deben emplear
nombres cortos y sencillos. Hay que evitar el uso de espacios o de caracteres especiales
en el nombre del archivo y tambin controlar el uso de maysculas y minsculas puesto
que en Internet existen multitud de sistemas operativos y alguno puede ser que no
acepte los mismos nombres de archivo que acepta el nuestro. Por ejemplo, hay sistemas
operativos en los que las maysculas y minsculas se distinguen (Unix) y otros donde
no (Microsoft Windows ).
las etiquetas aparecen por parejas (cdigos pareados), siendo una de inicio (apertura)
y otra de n
por su accin. Pero tambin hay etiquetas que aparecen de forma individual, como
<IMG> para insertar una imagen. Este ltimo tipo de etiquetas tiene efecto en el lugar
en el que se incluyen o desde el lugar en que aparecen hasta el nal de la pgina.
Todas las etiquetas comienzan con el smbolo
smbolo
>
Por ejemplo,
<HR>
En el lenguaje
cadenas
<
HTML
<HR
<HR<
no lo son.
una buena prctica ponerlas siempre en maysculas, sobre todo en aras de una mayor
5 Esta
extensin existe debido a que en DOS y Microsoft Windows 3.x los cheros slo pueden tener
6 Aunque
los nombres de los archivos pueden tener maysculas y minsculas, para acceder a un
archivo no se tienen en cuenta. Por ello, en un mismo directorio no pueden existir dos archivos que
slo se diferencian porque algunos caracteres aparecen en maysculas en uno y en minsculas en el
otro.
7 Los
navegadores actuales son muy exibles: si falta alguna etiqueta de n no producen un error
98
Captulo 6. HTML
HTML8 .
Las etiquetas de n tienen el mismo nombre que las de inicio, pero van precedidas
/ (barra
</HTML>.
del smbolo
<HTML>
es
Una etiqueta puede poseer varios atributos a los que hay que asignar valor. Algunos
de estos atributos son obligatorios, mientras que otros suelen ser opcionales. Por
otro lado, algunos aceptan un valor de cualquier tipo, otros cualquier valor de un
tipo concreto (alfanumrico, numrico, etc.) y, por ltimo, algunos necesitan un valor
concreto de un conjunto de valores. Los atributos se escriben dentro de la etiqueta
y separados por espacios en blanco. Para asignar un valor a un atributo se emplea
el signo igual (=). El valor que se asigna a un atributo tiene que ir encerrado entre
comillas. Por ejemplo, la etiqueta
varios atributos, entre ellos
SRC
<IMG>,
URL,
WIDTH y HEIGHT que esperan un valor numrico y el atributo ALT que espera cualquier
cadena de caracteres. Un ejemplo de uso de esta etiqueta es:
enva la
pgina tal cual. En el momento en que el explorador recibe la pgina, interpreta las
etiquetas que la pgina contiene, mostrando al usuario el resultado nal (donde no
aparecen ya las etiquetas, sino el resultado de su evaluacin).
6.5.1.
y cuerpo (<BODY>
... </BODY>).
... </HEAD>)
1
2
3
4
5
6
7
8
9
8 Sin
XHTML,
quetas como los atributos de las etiquetas se tienen que escribir en minsculas.
6.5.
99
HTML
<HTML>
es obligatoria.
ltima etiqueta en aparecer es la primera que se tiene que cerrar. Por tanto, el orden
correcto es primero
</BODY>
y luego
</HTML>.
gura 6.1. El ttulo indicado slo aparece en la barra de ttulo de la ventana activa del
navegador. El ttulo se indica usando los cdigo pareados
y se especica usando un texto plano, sin cdigos
1
2
3
4
5
6
7
8
9
10
11
12
<HTML>
<HEAD>
<TITLE>Esto es una pgina HTML</TITLE>
</HEAD>
<BODY>
Esto es el cuerpo de una pgina HTML
<BR>
Esto tiene que aparecer en una lnea nueva
<BR><BR>
Esto tiene que aparecer separado por una lnea en blanco
</BODY>
</HTML>
100
Captulo 6. HTML
URL).
<BR>.
Los espacios en blanco tambin son irrelevantes: si separamos dos palabras por varios
espacios en blanco, slo se tendr en cuenta uno de ellos. Si queremos incluir varios
6.5.2.
&#nnn;
donde
nnn
es el cdigo
representa el carcter
ñ
es el carcter
6.6.
Metadatos
101
carlos. En el Cuadro 6.2 guran los caracteres especiales con su secuencia de escape.
"
&
<
>
"
&
<
>
c
r
§
©
®
¶
§
©
®
¶
6.6. Metadatos
La etiqueta
incorporar informacin sobre el contenido de una pgina. Esta etiqueta slo puede
aparecer en la seccin
<META>
RFC 82210
en la cabecera de la respuesta
HTTP (algunas
9 Datos
sobre los datos. Los metadatos, por ejemplo, permiten indicar cmo, cundo y quin ha
102
Captulo 6. HTML
<META>:
<META HTTP-EQUIV="Expires" CONTENT="Tue, 20 Aug 1996 14:25:27
GMT">
siguiente etiqueta
HTTP:
<META>
Refresh
para
refrescar una pgina cada cierto perodo de tiempo. Con esta etiqueta se puede recargar automticamente una pgina cuyo contenido cambia con mucha
frecuencia. Por ejemplo, la siguiente pgina se refresca cada 5 segundos:
Ejemplo 6.3
1
2
3
4
5
6
7
8
9
<HTML>
<HEAD>
<TITLE>Ejemplo de uso de la etiqueta META</TITLE>
<META HTTP-EQUIV="Refresh" CONTENT="5">
</HEAD>
<BODY>
Esta pgina se refresca cada 5 segundos
</BODY>
</HTML>
Si se indica una
por el indicado en la
1
2
3
4
5
6
7
8
9
10
<HTML>
<HEAD>
<TITLE>Ejemplo de uso de la etiqueta META</TITLE>
<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.nuevaweb.com">
</HEAD>
<BODY>
Esta pgina ha cambiado, la nueva direccin es
<A HREF="http://www.nuevaweb.com">http://www.nuevaweb.com</A>
</BODY>
</HTML>
6.7.
Etiquetas HTML
103
Se
emplea
para
incluir
propiedades del documento, tales como autor, fecha de caducidad, una lista de
<META>
1
2
3
4
5
<META
<META
<META
<META
<META
1
2
3
4
5
6
7
8
9
10
11
<META
<META
<META
<META
<META
<META
<META
<META
<META
<META
<META
HTTP-EQUIV="pragma" CONTENT="no-cache">
NAME="Author" CONTENT="Universidad de Alicante">
c Universidad de Alicante">
NAME="Copyright" CONTENT="
NAME="Description" CONTENT="Web que recoge toda la ...">
NAME="keywords" CONTENT="Universidad de Alicante, Alicante ...">
NAME="Formatter" CONTENT="Mozilla/4.5 [es](Win98; I)[Netscape]">
NAME="Generator" CONTENT="Mozilla/4.5 [es](Win98; I)[Netscape]">
NAME="robots" CONTENT="index, follow">
HTTP-EQUIV="Content-Language" CONTENT="ES">
HTTP-EQUIV="Content-Script-Type" CONTENT="JavaScript">
HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859">
104
Captulo 6. HTML
aceptando cada uno etiquetas que no acepta el otro. Existe un intento de estandari-
<LINK>.
<XMP>.
<HTML>, <HEAD>
<BODY>.
<LI>.
<A>.
Etiquetas de formularios:
<KEYGEN>
<ISINDEX>.
Etiquetas de marcos:
<FRAME>,<FRAMESET>
<OBJECT>.
11 Ya
<WBR>.
se encuentra en desarrollo
<MAP>.
<TH>.
XHTML
<NOFRAMES>.
<LAYER>, <ILAYER>
<SCRIPT>, <NOSCRIPT>
<SPACER>, <SPAN>
<IMG>, <AREA>
<NOLAYER>.
<SERVER>.
6.8.
105
Encabezados de secciones
ms prominente,
y el nivel 6 es la etiqueta
Los encabezados
ALIGN
especica el alineamiento
1
2
3
4
5
6
7
8
<HTML>
<BODY>
Texto normal
<H1>Encabezado
<H2>Encabezado
<H3>Encabezado
<H4>Encabezado
<H5>Encabezado
12 En
nivel
nivel
nivel
nivel
nivel
1</H1>
2</H2>
3</H3>
4</H4>
5</H5>
JUSTIFY.
106
9
10
11
12
Captulo 6. HTML
6.8.2.
Formatos de caracteres
Las siguientes etiquetas se pueden emplear en lnea (inline ), lo que signica que
no interrumpen el uir del texto (no producen saltos de lnea ni nada similar). Por
tanto, se pueden aplicar a caracteres individuales.
Los formatos (tambin llamados estilos) se dividen en lgicos y fsicos. Los formatos
lgicos dependen del navegador (cada uno lo puede interpretar de distinta forma),
mientras que los formatos fsicos siempre se representan de la misma forma.
El siguiente cdigo
1
2
3
<HTML>
<BODY>
Formatos fsicos:<BR>
6.8.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
107
en negrita y cursiva simultneamente. nicamente hay que llevar cuidado y no intercalar unos cdigos con otros, ya que se pueden obtener resultados no esperados. Por
108
Captulo 6. HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<HTML>
<BODY>
<B>Esto est
<I>Esto est
Esto est en
<BR><BR>
<I>Esto est
<B>Esto est
Esto est en
<BR><BR>
<I>Esto est
<B>Esto est
<U>Esto est
Esto est en
Esto est en
</BODY>
</HTML>
en negrita.
en negrita y cursiva.</B>
cursiva.</I>
en cursiva.
en negrita y cursiva.</I>
negrita.</B>
en cursiva.
en negrita y cursiva.
en negrita, cursiva y subrayado.</I>
negrita y subrayado.</B>
subrayado.</U>
6.8.3.
La etiqueta <FONT>
La etiqueta
se muestra
6.8.
109
lista de tipos de letra separados por comas. El navegador comprueba si el primer tipo
de letra est disponible, si no es as prueba con el segundo y as sucesivamente. Si
ninguno de los tipos de letra est disponible, no se produce ningn cambio en el tipo
de letra.
Los tipos de letra pueden ser especcos o genricos. Entre los primeros, los ms
empleados son
cdigo muestra el uso de distintos tipos de letra. En la Figura 6.5 podemos observar
como se visualiza en Netscape Communicator 4.78 y en la Figura 6.6 como se muestra
en Microsoft Internet Explorer 6.0. Se pueden apreciar ligeras diferencias entre ambos navegadores; adems, algunos tipos de letra, como
Helvetica,
no se visualizan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<HTML>
<HEAD>
<TITLE>Distintos tipos de letra</TITLE>
</HEAD>
<BODY>
Tipos de letra especficos:<BR>
<FONT FACE="Arial">Texto en Arial</FONT><BR>
<FONT FACE="Helvetica">Texto en Helvetica</FONT><BR>
<FONT FACE="Tahoma">Texto en Tahoma</FONT><BR>
<BR>
Tipos de letra genricos:<BR>
<FONT FACE="serif">Texto en serif</FONT><BR>
<FONT FACE="sans-serif">Texto en sans-serif</FONT><BR>
<FONT FACE="cursive">Texto en cursive</FONT><BR>
<FONT FACE="monospace">Texto en monospace</FONT><BR>
<FONT FACE="fantasy">Texto en fantasy</FONT><BR>
</BODY>
</HTML>
Para modicar el tamao del texto se emplea el atributo
13 Se
Ejemplo 6.12
SIZE.
<BASEFONT SIZE="numero">.
110
Captulo 6. HTML
Figura 6.5: Distintos tipos de letra con la etiqueta <FONT> en Netscape Communicator
Figura 6.6: Distintos tipos de letra con la etiqueta <FONT> en Microsoft Internet
Explorer
6.8.
1
2
3
4
5
6
7
8
9
10
11
12
<HTML>
<BODY>
Distintos tamaos de
<FONT SIZE="1">Texto
<FONT SIZE="2">Texto
<FONT SIZE="3">Texto
<FONT SIZE="4">Texto
<FONT SIZE="5">Texto
<FONT SIZE="6">Texto
<FONT SIZE="7">Texto
</BODY>
</HTML>
111
letra:<BR>
en 1</FONT><BR>
en 2</FONT><BR>
en 3</FONT><BR>
en 4</FONT><BR>
en 5</FONT><BR>
en 6</FONT><BR>
en 7</FONT><BR>
6.8.4.
La etiqueta
texto. Un prrafo comienza en una lnea nueva y el navegador suele dejar un espacio
en blanco extra antes del prrafo.
Para alinear el contenido de un prrafo se emplea el atributo
ALIGN.
El conteni-
do del prrafo puede alinearse a la izquierda (LEFT), a la derecha (RIGHT), centrado (CENTER) o justicado (JUSTIFY). El siguiente cdigo
14 En HTML
toria.
</P>
XHTML
1.0 es obliga-
112
Captulo 6. HTML
prrafo alineado de cuatro formas distintas. En la Figura 6.8 podemos ver el cdigo
visualizado en un navegador.
Ejemplo 6.13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<HTML>
<BODY>
<P ALIGN="LEFT">
Los enlaces o hiperenlaces permiten relacionar distintas pginas
entre s (hipertexto). Esta caracterstica da la posibilidad de
organizar la informacin en distintas pginas HTML enlazadas, de
forma que el usuario pueda seleccionar la que ms le interese en
cada momento.
</P>
<P ALIGN="RIGHT">
Los enlaces o hiperenlaces permiten relacionar distintas pginas
entre s (hipertexto). Esta caracterstica da la posibilidad de
organizar la informacin en distintas pginas HTML enlazadas, de
forma que el usuario pueda seleccionar la que ms le interese en
cada momento.
</P>
<P ALIGN="CENTER">
Los enlaces o hiperenlaces permiten relacionar distintas pginas
entre s (hipertexto). Esta caracterstica da la posibilidad de
organizar la informacin en distintas pginas HTML enlazadas, de
forma que el usuario pueda seleccionar la que ms le interese en
cada momento.
</P>
<P ALIGN="JUSTIFY">
Los enlaces o hiperenlaces permiten relacionar distintas pginas
entre s (hipertexto). Esta caracterstica da la posibilidad de
organizar la informacin en distintas pginas HTML enlazadas, de
forma que el usuario pueda seleccionar la que ms le interese en
cada momento.
</P>
</BODY>
</HTML>
Tambin se puede emplear la etiqueta
para centrar el
texto. Esta etiqueta no slo permite centrar el texto, sino cualquier otro elemento que
contenga la pgina, como puede ser una imagen o una tabla.
Los
bloques
</BLOCKQUOTE>.
de
texto
se
especican
usando
la
etiqueta
<BLOCKQUOTE> ...
plear para marcar citas textuales o deniciones de especial relevancia. Los bloques de
texto se pueden anidar para producir un mayor sangrado. El siguiente cdigo muestra el empleo de esta etiqueta. En la Figura 6.9 se puede ver como se muestra en un
6.8.
113
navegador web.
Ejemplo 6.14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<HTML>
<BODY>
Este texto no tiene sangra.
<BLOCKQUOTE>
1. Un nivel de sangra.
<BLOCKQUOTE>
2. Dos niveles de sangra.
<BLOCKQUOTE>
3. Tres niveles de sangra.
</BLOCKQUOTE>
</BLOCKQUOTE>
Volvemos al nivel 1.
</BLOCKQUOTE>
Volvemos a texto
sin sangra.
</BODY>
</HTML>
114
Captulo 6. HTML
6.8.5.
Lneas horizontales
<HR>
WIDTH="anchura".
ALIGN="LEFT" | "RIGHT" | "CENTER". Alineamiento de la lnea horizontal respecto a la pgina. Por defecto, aparece centrada.
NOSHADE.
1
2
<HTML>
<BODY>
6.9.
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Listas
115
6.9. Listas
Las listas permiten organizar la informacin de una manera lgica, lo que facilita
su legibilidad. Existen cinco tipos de listas en
HTML:
ordenadas, listas no ordenadas, listas de directorio y listas de men. Como las dos
ltimas listas estn obsoletas, ya que se visualizan como las listas no ordenadas, no
las vamos a tratar.
Las listas se pueden anidar entre s, incluso si son de distinto tipo. En el caso
de anidar listas no numeradas, cada nivel de anidamiento tendr un tipo de smbolo
distinto.
6.9.1.
Listas de denicin
Una lista de denicin se emplea para mostrar trminos con sus correspondientes
deniciones, como si se tratase de un glosario o diccionario.
Una lista de denicin se crea con la etiqueta
(denition term ), y cada trmino posee una o ms deniciones, que se indican cada
15 En HTML
obligatoria.
</DT>
XHTML
1.0 es
116
Captulo 6. HTML
6.9.
Listas
117
una lista de denicin, las deniciones de cada trmino aparecen con una sangra
hacia la derecha.
El siguiente ejemplo muestra como se usan estas etiquetas. Aunque las lneas que
contienen las etiquetas
<DD>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<HTML>
<BODY>
<DL>
<DT>BANCO</DT>
<DD>Lugar donde se deposita dinero</DD>
<DD>Sitio donde se sienta la gente</DD>
<DT>GATO</DT>
<DD>Animal de cuatro patas con pelo</DD>
<DD>Herramienta para levantar un vehculo</DD>
<DT>ORDENADOR</DT>
<DD>Aparato electrnico que realiza clculos</DD>
</DL>
</BODY>
</HTML>
16 En HTML
obligatoria.
</DD>
XHTML
1.0 es
118
Captulo 6. HTML
6.9.2.
Listas ordenadas
<OL> ... <OL> (ordered list ) dene una lista de este tipo. Cada elemento se dene con
17 (list item ). Esta etiqueta posee dos atributos: START y
la etiqueta <LI> ... </LI>
TYPE.
El atributo START indica el valor desde el que empieza la numeracin; tiene que
ser un valor positivo.
El atributo
TYPE
A:
A, B, C.
a:
a, b, c.
I: indica
II, III.
I,
1, 2, 3.
El siguiente ejemplo muestra el uso de esta etiqueta. Adems, tambin se puede ver
como se pueden anidar listas (incluir una lista dentro de otra lista). En la Figura 6.12
vemos como se muestra esta pgina.
Ejemplo 6.17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<HTML>
<BODY>
Lista normal, con anidamiento:
<OL>
<LI>Elemento 1</LI>
<LI>Elemento 2</LI>
<LI>Lista anidada:
<OL>
<LI>Elemento 1</LI>
<LI>Elemento 2</LI>
</OL>
</LI>
</OL>
Lista numerada con letras en maysculas:
<OL TYPE="A">
<LI>Elemento 1</LI>
17 En HTML
obligatoria.
</LI>
XHTML
1.0 es
6.9.
17
18
19
20
21
22
23
24
25
Listas
119
<LI>Elemento 2</LI>
</OL>
Lista numerada con nmeros romanos:
<OL TYPE="i">
<LI>Elemento 1</LI>
<LI>Elemento 2</LI>
</OL>
</BODY>
</HTML>
6.9.3.
Listas no ordenadas
En las listas no ordenadas, los elementos aparecen marcados mediante unos pequeos elementos grcos, llamados en ingls bullet. La etiqueta
dered list ) dene una lista no ordenada. Cada elemento se dene con la etiqueta
... </LI>18
(list item ).
18 En HTML
obligatoria.
</LI>
XHTML
1.0 es
120
Captulo 6. HTML
pleado para marcar los elementos. Los posibles valores que puede tomar este atributo
son:
CIRCLE:
DISC:
un disco slido.
SQUARE:
un cuadrado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<HTML>
<BODY>
<UL TYPE="CIRCLE">
<LI>Elemento 1</LI>
<LI>Elemento 2</LI>
</UL>
<UL TYPE="DISC">
<LI>Elemento 1</LI>
<LI>Elemento 2</LI>
</UL>
<UL TYPE="SQUARE">
<LI>Elemento 1</LI>
<LI>Elemento 2</LI>
</UL>
<UL>
<LI>Elemento a:
<UL>
<LI>Elemento b:
<UL>
<LI>Elemento c:</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</BODY>
</HTML>
6.10. Colores
121
6.10. Colores
En
HTML
fondo de una pgina, el color del texto, el color de una tabla, etc. Existen dos formas
de especicar los colores:
Mediante las componentes Red Green Blue (
se especica la intensidad de los colores bsicos rojo, verde y azul que permiten
obtener por combinacin cualquier otro color. Cada componente puede variar
entre 0 y 255, por lo que se tienen 16 777 216 (256 x 256 x 256) colores. Las
componentes se tienen que expresar en hexadecimal y al principio se tiene que
poner el signo
Mediante los nombres de los colores. Existen una serie de colores a los que se
les ha asignado un nombre en ingls, como green, olive o white.
En el Apndice B se incluye ms informacin sobre el uso de colores en
como pasar las componentes
6.10.1.
HTML y
BGCOLOR
122
Captulo 6. HTML
6.10.2.
La etiqueta
posee el atributo
COLOR
color del texto. Tambin se puede cambiar el color del texto para toda una pgina,
el color de los enlaces, el color de los enlaces visitados y el color de los enlaces al
activarse. Para ello se emplean los atributos
En el siguiente ejemplo, se cambia el color del texto y de los enlaces para que
todos tengan el mismo color y no se puedan diferenciar unos de otros.
Ejemplo 6.19
1
2
3
4
5
6
7
<HTML>
<BODY TEXT="black" LINK="black" VLINK="black" ALINK="black">
<A HREF="http://www.ua.es">Universidad de Alicante</A>
<BR>
<A HREF="http://www.eps.ua.es">Escuela Politcnica Superior</A>
</BODY>
</HTML>
6.11. Enlaces
Los enlaces o hiperenlaces permiten relacionar distintas pginas entre s (hipertexto). Esta caracterstica da la posibilidad de organizar la informacin en distintas
pginas
En los dos ltimos casos, la pgina destino puede residir en el mismo servidor que la
pgina que contiene el hiperenlace o en otro distinto.
La etiqueta que utiliza
HTML
un hiperenlace (ser el objeto sensible que al ser pulsado producir el salto al destino
del enlace). Normalmente suele utilizarse texto e imgenes como hiperenlaces.
6.11.1.
Un enlace de este tipo consta de dos partes: una referencia y un destino. El destino
se identica por un nombre. La referencia har alusin al nombre del destino. En una
pgina se pueden incluir varias referencias a un mismo destino, pero no se pueden
crear varios destinos con el mismo nombre. La forma de denir este enlace es:
19 La A
6.11. Enlaces
123
Referencia:
Destino:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<HTML>
<HEAD>
<TITLE>Esto es una pgina HTML</TITLE>
</HEAD>
<BODY>
Aqu tenemos un <A HREF="#destino">enlace</A> sobre la misma
pgina. Hay que dejar muchas lneas en blanco para que se
pueda comprobar el efecto.
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<A NAME="destino">Esto</A> es el destino del enlace que aparece
al principio de la pgina.
</BODY>
</HTML>
6.11.2.
importante:
cuando
indiquemos
el
nombre
del
documento
destino
(pagina.html), hay que tener mucho cuidado con las maysculas y minsculas. En
el siguiente ejemplo tenemos dos pginas con colores de fondo distintos; en cada una
de ellas gura un enlace a la otra.
Pgina
blanco.html
(Figura 6.16):
Ejemplo 6.21
1
2
<HTML>
<HEAD>
124
Captulo 6. HTML
6.11. Enlaces
3
4
5
6
7
8
9
125
Pgina
azul.html
(Figura 6.17):
Ejemplo 6.22
1
2
3
4
5
6
7
8
9
<HTML>
<HEAD>
<TITLE>Esto es una pgina HTML</TITLE>
</HEAD>
<BODY BGCOLOR="#BBBBFF">
<B>Aqu tenemos un <A HREF="blanco.html">enlace</A> a otra
pgina que tiene el fondo blanco.</B>
</BODY>
</HTML>
6.11.3.
Este tipo de enlace es una combinacin de los dos anteriores. La forma de denir
este enlace es:
Referencia:
Destino:
126
Captulo 6. HTML
En el siguiente ejemplo tenemos una pgina con dos enlaces a la misma pgina,
pero a distintos destinos dentro de esa pgina.
Pgina
unapagina.html
(Figura 6.18):
Ejemplo 6.23
1
2
3
4
5
6
7
8
9
10
11
12
13
<HTML>
<HEAD>
<TITLE>Esto es una pgina HTML</TITLE>
</HEAD>
<BODY>
<B>Aqu tenemos un <A HREF="otrapagina.html#destino1">enlace</A>
a un destino de otra pgina.
<BR><BR>
Aqu tenemos otro <A HREF="otrapagina.html#destino2">enlace</A>
a otro destino de la misma pgina que antes.
</B>
</BODY>
</HTML>
Pgina
otrapagina.html
1
2
3
4
5
6
7
8
<HTML>
<HEAD>
<TITLE>Esto es una pgina HTML</TITLE>
</HEAD>
<BODY>
<B>Aqu tenemos un <A NAME="destino1">destino</A>, el nmero 1.
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
6.11. Enlaces
9
10
11
12
127
6.11.4.
Mediante el protocolo
mailto:
usuario pulse sobre un enlace. Realmente no se enva un correo electrnico automticamente: se abre el programa de correo electrnico que tenga congurado el usuario
por defecto y se crea un nuevo mensaje, pero no se enva hasta que el usuario no lo
conrme.
La sintaxis de este protocolo es:
mailto:dir1[,dir2,...][?opcion1[&opcion2&...]]
donde dir1, dir2, ... son direcciones de correo electrnico y opcion1,
opcion2, ... es una lista de opciones opcional. Las principales opciones que se
pueden emplear son:
cc (carbon
rios.
bcc
(blind carbon copy ): para indicar el envo de copias del mensaje a otros
destinatarios ocultos.
subject:
body:
128
Captulo 6. HTML
6.12. Tablas
129
Estas opciones se pueden combinar en un nico enlace. Slo hay que tener en cuen-
ta que se tienen que separar con el smbolo & y que los valores de las opciones se tienen que escribir empleando codicacin URL (URL encoding ). En esta codicacin,
una serie de caracteres especiales, como por ejemplo &,
usando el smbolo
%
%, $
o , se codican
se codicara como
El siguiente ejemplo contiene seis enlaces con distintas opciones que envan un
correo electrnico al ser pulsado cualquiera de ellos. En la Figura 6.21 se puede observar como se visualiza esta pgina en un navegador: en la barra de estado del navegador
se puede apreciar la
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<HTML>
<HEAD>
<TITLE>Ejemplo de envo de correo electrnico</TITLE>
</HEAD>
<BODY>
<A HREF="mailto:a@b.c">Simple</A>
<BR>
<A HREF="mailto:a@b.c,d@e.f">A dos personas</A>
<BR>
<A HREF="mailto:a@b.c?cc=d@e.f">Con copia</A>
<BR>
<A HREF="mailto:a@b.c?bcc=d@e.f">Con copia oculta</A>
<BR>
<A HREF="mailto:a@b.c?subject=El%20tema%20del%20mensaje">Con ttulo</A>
<BR>
<A HREF="mailto:a@b.c?cc=d@e.f&subject=Tema&body=Cuerpo%20mensaje">
Combinando varias opciones</A>
</BODY>
</HTML>
6.12. Tablas
Hasta que aparecieron las tablas en el lenguaje
bular cosas en una pgina consista en usar texto con preformato (<PRE>
... </PRE>)
y colocar manualmente los espacios hasta que las columnas estuviesen perfectamente
alineadas. Este proceso, adems de ser realmente tedioso, no ofrece resultados con la
vistosidad deseada.
Las tablas se construyen siguiendo una serie de reglas sencillas:
130
Captulo 6. HTML
6.12. Tablas
131
Las tablas en
</TABLE>.
HTML
<TABLE> ...
Una tabla se compone de celdillas de datos. Una celdilla se dene usando los
cdigos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<HTML>
<BODY>
<TABLE BORDER="1">
<TR>
<TH>Cabecera 1</TH>
<TH>Cabecera 2</TH>
<TH>Cabecera 3</TH>
</TR>
<TR>
<TD>Elemento (1, 1)</TD>
<TD>Elemento (1, 2)</TD>
<TD>Elemento (1, 3)</TD>
</TR>
<TR>
<TD>Elemento (2, 1)</TD>
<TD>Elemento (2, 2)</TD>
<TD>Elemento (2, 3)</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Los atributos ms importantes de la etiqueta
BGCOLOR="color".
<TABLE>
son:
132
Captulo 6. HTML
BORDER="n".
CELLPADDING="n".
HEIGHT="n" | "n %". Alto de la tabla. Se puede indicar en pixels o en tanto por
ciento en relacin a la altura total disponible.
<TR>, <TH>
<TD>
son:
... </TD>.
COLSPAN
ROWSPAN
de las etiquetas
<TD>
6.12. Tablas
133
COLSPAN="n",
donde
ROWSPAN="n",
El siguiente ejemplo muestra una tabla con varias celdas fusionadas. En la Figura 6.24 vemos como se ve esta pgina en una navegador.
Ejemplo 6.27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<HTML>
<BODY>
<BR><BR>
<CENTER>
<TABLE BORDER="1">
<TR>
<TD>Una celda normal</TD>
<TD>Una celda normal</TD>
<TD>Una celda normal</TD>
</TR>
<TR>
<TD COLSPAN="2">Una celda
mediante COLSPAN</TD>
<TD>Una celda normal</TD>
</TR>
<TR>
<TD COLSPAN="3">Una celda
mediante COLSPAN</TD>
</TR>
<TR>
<TD ROWSPAN="2">Una celda
mediante ROWSPAN</TD>
<TD>Una celda normal</TD>
<TD>Una celda normal</TD>
</TR>
<TR>
<TD>Una celda normal</TD>
<TD>Una celda normal</TD>
</TR>
<TR>
<TD ROWSPAN="3">Una celda
mediante ROWSPAN</TD>
<TD>Una celda normal</TD>
<TD>Una celda normal</TD>
</TR>
<TR>
<TD>Una celda normal</TD>
<TD>Una celda normal</TD>
134
39
40
41
42
43
44
45
46
47
Captulo 6. HTML
</TR>
<TR>
<TD>Una celda normal</TD>
<TD>Una celda normal</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
6.12.2.
Tablas invisibles
HTML.
Por ejemplo, mediante tablas invisibles se puede mostrar el texto con mrgenes a
la izquierda y a la derecha, mostrar texto a varias columnas, dividir una imagen en
diferentes cheros y que se muestre como si no estuviese dividida, etc.
6.12.3.
ALIGN,
6.12. Tablas
LEFT
135
CENTER
(centrado) y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<HTML>
<BODY>
<BR><BR>
<CENTER>
<TABLE BORDER="1">
<TR ALIGN="CENTER">
<TD>Varias<BR>lneas<BR>de texto</TD>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
</TR>
<TR ALIGN="RIGHT" VALIGN="TOP">
<TD>Varias<BR>lneas<BR>de texto</TD>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
</TR>
<TR>
<TD>Varias<BR>lneas<BR>de texto</TD>
<TD ALIGN="LEFT">Alineamiento LEFT</TD>
<TD ALIGN="CENTER">Alineamiento CENTER</TD>
<TD ALIGN="RIGHT">Alineamiento RIGHT</TD>
</TR>
<TR>
<TD>Varias<BR>lneas<BR>de texto</TD>
<TD VALIGN="TOP">Alineamiento TOP</TD>
<TD VALIGN="MIDDLE">Alineamiento MIDDLE</TD>
<TD VALIGN="BOTTOM">Alineamiento BOTTOM</TD>
</TR>
<TR VALIGN="MIDDLE">
<TD>Varias<BR>lneas<BR>de texto</TD>
<TD VALIGN="TOP">Alineamiento TOP</TD>
<TD VALIGN="MIDDLE">Alineamiento MIDDLE</TD>
<TD VALIGN="BOTTOM">Alineamiento BOTTOM</TD>
</TR>
</TABLE>
136
37
38
39
Captulo 6. HTML
</CENTER>
</BODY>
</HTML>
6.12.4.
CELLPADDING="n"
de la etiqueta
modica la
distancia, en pixels, existente entre el borde de una celda y su contenido. El valor por
defecto es 1.
El atributo
CELLSPACING="n"
de la etiqueta
modica la
distancia, en pixels, existente entre los bordes de dos celdas contiguas. El valor por
defecto es 2.
6.12. Tablas
137
El siguiente ejemplo muestra cuatro tablas con distintas distancias entre el borde
y su contenido y entre celdas contiguas. En la Figura 6.26 vemos como se visualiza
esta pgina en una navegador.
Ejemplo 6.29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<HTML>
<BODY>
<BR><BR>
<CENTER>
<TABLE BORDER="1" CELLPADDING="5">
<TR>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
</TR>
<TR>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
</TR>
</TABLE>
<BR>
<TABLE BORDER="1" CELLPADDING="15">
<TR>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
</TR>
<TR>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
</TR>
</TABLE>
<BR>
<TABLE BORDER="1" CELLSPACING="5">
<TR>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
</TR>
<TR>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
</TR>
138
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Captulo 6. HTML
</TABLE>
<BR>
<TABLE BORDER="1" CELLSPACING="15">
<TR>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
<TD>Alineamiento CENTER</TD>
</TR>
<TR>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
<TD>Alineamiento RIGHT y TOP</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
6.12.5.
Las tablas son muy tiles para crear marcos alrededor del texto o cualquier otro
elemento de una pgina
HTML.
vez sencillos de realizar mediante diversas tablas anidadas. Por ejemplo, el siguiente
cdigo, cuyo resultado se muestra en la Figura 6.27, muestra un texto sobre un fondo
rojo rodeado de un marco amarillo en una pgina cuyo fondo es de color naranja.
El tamao de las celdas de la tabla exterior se ha modicado mediante el atributo
CELLPADDING="10"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<HTML>
<BODY BGCOLOR="orange">
<BR>
<CENTER>
<TABLE BORDER="0" BGCOLOR="yellow" CELLPADDING="10">
<TR><TD>
<TABLE BORDER="0" BGCOLOR="red">
<TR><TD>
<FONT SIZE="5">HTML til y prctico</FONT>
</TD></TR>
</TABLE>
</TD></TR>
</TABLE>
</CENTER>
6.12. Tablas
139
140
15
16
Captulo 6. HTML
</BODY>
</HTML>
6.13. Imgenes
Al inicio de la Web, el empleo de imgenes en los documentos
escaso
20 . Sin embargo, hoy es todo lo contrario y es muy difcil encontrar pginas que
en el Cuadro 6.4. Colores indica el mximo nmero de colores que permite el formato grco; transparencia indica si soporta transparencias (zonas de una imagen que
muestran lo que est situado detrs de ella); animacin indica si soporta animaciones;
compresin indica si emplea un formato de compresin sin prdidas o con prdidas;
dibujo indica si es un formato grco adecuado para almacenar imgenes sencillas,
como dibujos, logotipos, textos, etc.; fotografa indica si es un formato grco adecuado para almacenar fotografas; por ltimo, gamma indica si soporta el empleo de
la correccin gamma cuando se visualiza la imagen.
20 Las
razones pueden ser varias: los ordenadores no tenan la suciente potencia para manejar
varias imgenes a la vez, el ancho de banda en las comunicaciones era menor que el actual o a nadie
se le haba ocurrido la idea de hacer un uso intensivo y extensivo de las imgenes.
6.13. Imgenes
141
Caracterstica
GIF
JPEG
PNG
Colores
256 (8 bits)
48 bits
S (alfa)
Transparencia
No
Animacin
No
No
Compresin
Sin prdidas
Con prdidas
Sin prdidas
Dibujo
No
Fotografa
No
Gamma
No
No
6.13.1.
Archivos GIF
a 8 bits, lo que permite un mximo de 256 colores. Adems, permite denir un color
como transparente y la forma de descarga en el navegador se puede denir como
normal o entrelazada. En el modo entrelazado, las lneas que forman la imagen no se
almacenan secuencialmente, sino entrelazadas por grupos, como por ejemplo, grupo
1 (lneas 1, 5, 9, . . . ), grupo 2 (lneas 2, 6, 10, . . . ), etc. De este modo, conforme se
descarga la imagen se van visualizando las lneas entrelazadas, lo que proporciona una
idea global de la imagen nal. Por ltimo, existen distintas versiones de este formato
grco, siendo las ms empleadas GIF87A y GIF89A.
funciona mucho mejor en imgenes con zonas de color homogneo, ya que es menos
ecaz en imgenes complejas con muchos colores y texturas complejas. Cuantos menos
colores tiene una imagen, mejor funciona el esquema de compresin empleado por
GIF
forma, las zonas de la imagen que posean ese color sern transparentes y se podr ver
lo que est detrs de la imagen. Normalmente se asigna la transparencia al color de
fondo de la imagen. La propiedad de transparencia no es selectiva, lo que signica que
si se asigna la transparencia a un color, todos los puntos de la imagen que contengan
ese color se convertirn en transparentes, lo que puede ocasionar problemas en algunos
casos.
Otros problemas que pueden surgir con las transparencias ocurren cuando en la
imagen se ha aplicado un suavizado (antialiasing ). El suavizado modica los bordes
insertando colores intermedios en los lmites de las formas como pueden ser las letras
21 Compresin
calidad de las imgenes no se ve afectada al recuperar las imgenes una vez comprimidas.
142
Captulo 6. HTML
(a)
(b)
o las lneas. Tiene como n mejorar la apariencia de las imgenes, ya que suaviza
los dientes de sierra. Cuando se intenta usar una imagen con suavizado y fondo
transparente sobre un color de fondo distinto al empleado durante el suavizado ocurren
problemas, ya que el suavizado aparece como un halo alrededor de los lmites de las
formas de la imagen. Por ejemplo, en la Figura 6.29 aparece una imagen con suavizado
sobre un fondo blanco. Cuando la misma imagen se coloca sobre un fondo de otro
color, aparecen distintas zonas que corresponden al suavizado, tal como se puede
apreciar en la Figura 6.30.
6.13. Imgenes
143
se incluyen los tamaos que han sido estandarizados y en la Figura 6.31 se pueden
ver algunos de ellos:
468 x 60 (Full Banner )
234 x 60 (Half Banner )
88 x 31 (Micro Bar )
120 x 90 (Button 1 )
120 x 60 (Button 2 )
160 x 600 (Wide Skyscraper )
120 x 600 (Skyscraper )
125 x 125 (Square Button )
120 x 240 (Vertical Banner )
180 x 150 (Rectangle )
300 x 250 (Medium Rectangle )
250 x 250 (Square Pop-up )
240 x 400 (Vertical Rectangle )
336 x 280 (Large Rectangle )
6.13.2.
Archivos JPEG
El formato grco
JPEG son imgenes a todo color (24 bits por punto de la imagen). Adems,
JPEG progresivo (mecanismo similar al entrelazado en el formato GIF)
si se emplea
JPEG
22 http://www.iab.net/iab_banner_standards/bannersizes.html.
144
Captulo 6. HTML
6.13. Imgenes
145
23 . Si se
JPEG:
BMP).
En la Figura 6.33 y Figura 6.34 se muestra la misma imagen comprimida con dos
niveles de compresin distintos: en la Figura 6.33 el nivel de compresin es 15 sobre
100 (10 281 bytes) y en la Figura 6.34 75 sobre 100 (3 643 bytes). En las imgenes de la
izquierda prcticamente no se aprecian diferencias, pero cuando se amplia la imagen
se puede observar la aparicin de ruido, los bordes borrosos y la textura cuadriculada.
cia de fotografa: imgenes complejas, con suaves transiciones de tono y color y sin
bordes muy marcados. Para las imgenes con formas geomtricas, bordes marcados y
transiciones de color acentuadas, como pueden ser los esquemas, logotipos o dibujos,
es mejor no emplear este formato grco.
6.13.3.
Archivos PNG
El formato grco
PNG
GIF.
JPEG.
GIF.
23 Si
se trabaja con
JPEG,
formato que no produzca prdidas, ya que una vez comprimida la imagen con
JPEG
es imposible
GIF
debe pagar
146
Captulo 6. HTML
(a)
(b)
(a)
(b)
(a)
(b)
6.13. Imgenes
147
Entrelazado 2D (interlacing ).
El formato
las dos imgenes de la Figura 6.28 ocupan con este formato 248 bytes y 279 bytes
respectivamente, lo que supone una reduccin de aproximadamente el 80 % en el
tamao del chero.
Aunque Microsoft Internet Explorer y Netscape Communicator en sus ltimas versiones (a partir de 4.x) ya lo soportan parcialmente, an no se encuentra muy extendido
su uso. Adems, algunas caractersticas no se implementan correctamente. Por ejemplo, en la Figura 6.35, 6.36 y 6.37 se puede ver la misma imagen
PNG visualizada
mediante Netscape Communicator 4.78 (donde peor se ve), Microsoft Internet Explorer
5.5 y Opera 6.0 (donde mejor se ve). Esta imagen posee transparencia alfa, pero esta
caracterstica no se visualiza correctamente en todos los navegadores:
En Netscape Communicator se ve una barra horizontal con un degradado y las
letras tienen un color slido porque no se tienen en cuenta la transparencia.
Adems en las letras (como la 'e' y la 'g') se pueden observar dientes de sierra,
ya que al no realizarse la transparencia no se puede hacer antialiasing .
En Microsoft Internet Explorer se puede observar como el color de las letras no es
slido y la barra horizontal ha desaparecido: ahora hay tres barras ms pequeas
y el degradado ha cambio. Esto se debe a que la transparencia tiene efecto con
el color de fondo de la imagen.
En Opera la transparencia se realiza con la imagen de fondo y no con el color de
fondo. Se puede observar como la textura de la imagen de fondo se ve a travs
de las letras.
6.13.4.
Etiqueta <IMG>
La etiqueta
SRC="localizacin".
quiere insertar.
BORDER="anchura".
WIDTH="anchura".
Anchura de la imagen.
148
Captulo 6. HTML
Figura 6.36: Imagen PNG con transparencias visualizada en Microsoft Internet Explorer 5.5
6.13. Imgenes
149
HEIGHT="altura".
Altura de la imagen.
no admite la
WIDTH
HEIGHT,
26 .
El siguiente cdigo muestra como se emplean las imgenes. La pgina est formada
por una tabla con cuatro celdas. En cada celda se muestra la misma imagen con
un alineamiento distinto. Adems, la ltima imagen tambin posee un borde. En la
Figura 6.38 se puede observar como se visualiza este cdigo en un navegador.
Ejemplo 6.31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<HTML>
<BODY>
<TABLE BORDER="0">
<TR>
<TD>
<IMG SRC="foto.jpg" WIDTH="134"
El manitas de la casa
</TD>
<TD>
<IMG SRC="foto.jpg" WIDTH="134"
El manitas de la casa
</TD>
</TR>
<TR>
<TD>
<IMG SRC="foto.jpg" WIDTH="134"
El manitas de la casa
</TD>
<TD>
<IMG SRC="foto.jpg" WIDTH="134"
El manitas de la casa
</TD>
</TR>
</TABLE>
25 La
HEIGHT="191" ALIGN="MIDDLE">
HEIGHT="191" ALIGN="BOTTOM">
HEIGHT="191" BORDER="10">
gente con problemas de visin emplea un software especial que lee las pginas web; cuando
26 El
HEIGHT="191" ALIGN="TEXTTOP">
ALT
y lee su contenido.
navegador conoce el tamao de las imgenes antes de cargarlas, por lo que ya puede reservar
150
25
26
Captulo 6. HTML
</BODY>
</HTML>
6.13.5.
La etiqueta
trar una imagen como fondo de una pgina. Si la imagen tiene un tamao menor que
la ventana del navegador, la imagen se muestra en forma de mosaico hasta cubrir
toda la supercie de la ventana.
6.14. Formularios
HTML para poder obtener inforHTML y enviarla al servidor web para
6.14. Formularios
151
en cuenta que no pueden anidarse ni solaparse. El servidor web slo podr recibir la
informacin introducida en uno de ellos (slo se enva la informacin de uno de los
formularios al servidor).
La estructura bsica de un formulario es:
Ejemplo 6.32
1
2
3
<FORM>
NAME
ACTION
indica la direccin (
URL)
METHOD
POST27 ).
6.14.1.
Controles de un formulario
(para
enviar
informacin,
borrar
acciones):
<INPUT
informacin):
<INPUT
otras
que
TYPE="IMAGE">.
actan
como
Campos de vericacin:
botones
27 Normalmente
utiliza
GET,
se utiliza
<INPUT TYPE="RADIO">.
<INPUT TYPE="TEXT">.
POST,
variable de entorno
enviar
<INPUT TYPE="CHECKBOX">.
(para
QUERY_STRING.
URL
152
Captulo 6. HTML
28 (password ):
Campos de contrasea
Campos ocultos:
<INPUT TYPE="PASSWORD">.
<INPUT TYPE="HIDDEN">.
Envo de cheros:
<INPUT TYPE="FILE">.
Listas de seleccin:
Para que los datos introducidos en un formulario se enven al servidor, todo formulario tiene que tener un botn de tipo
NAME
tendr que tener el mismo nombre (excepto en el caso de los botones de radio),
VALUE para asignar un valor (todas las etiquetas tienen este atribu<INPUT TYPE="IMAGE">, <SELECT> ... </SELECT> y <TEXTAREA> ...
</TEXTAREA>). En los botones, el atributo VALUE modica el texto que muestra el
y el atributo
to excepto
HTML
1
2
3
4
5
6
7
8
9
10
<HTML>
<HEAD>
<TITLE>Esto es una pgina HTML con formularios</TITLE>
</HEAD>
<BODY>
Esto es el cuerpo de una pgina HTML. Esta pgina posee un formulario:
<HR>
<FORM NAME="miFormulario" ACTION="procesa.asp" METHOD="POST">
Cuadro de texto: <INPUT TYPE="TEXT" NAME="control1a" VALUE="Algo">
<BR>
28 Un
campo de contrasea es idntico a un campo de texto, pero los caracteres se ocultan mediante
asteriscos.
29 En
realidad, pueden existir varios controles (incluso de distinto tipo) con el mismo nombre, pero
cuando se procesen los datos en el servidor no se podr saber de que control procede cada dato.
6.14. Formularios
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
153
6.14.2.
Campos de vericacin
TYPE="CHECKBOX">)
tivado y desactivado. Si al enviarse un formulario un campo de vericacin est activo, se enva al servidor el valor indicado por
VALUE.
6.14.3.
CHECKED
en la etiqueta
<INPUT TYPE="CHECKBOX">.
Campos excluyentes
TYPE="RADIO">)
tienen sen-
tido cuando se emplean varios a la vez. Un grupo de botones de radio est formado
por varios botones de radio que tienen todos el mismo nombre (NAME). En un grupo
de botones de radio slo un botn de radio puede estar seleccionado en un instante.
Un formulario puede contener distintos grupos de botones de radio.
154
Captulo 6. HTML
6.14. Formularios
155
CHECKED
6.14.4.
Campos de texto
MAXLENGTH,
6.14.5.
VALUE.
Listas de seleccin
En las
listas de seleccin se muestra una serie de opciones de las que el usuario puede elegir
una. Si se aade el atributo
El atributo
SIZE
MULTIPLE,
30 .
neamente. Si el valor de este atributo es 1 (valor por defecto), se muestra una lista
desplegable; si el valor de este atributo es mayor que 1, se muestra un cuadro de
opciones con una barra de desplazamiento vertical.
Cada opcin de una lista de seleccin se indica con la etiqueta <OPTION> ...
</OPTION>31 . Cada opcin puede tener asociado un valor (VALUE), que es el valor que
se enviar al servidor. Si se desea que una opcin aparezca marcada por defecto se
tiene que aadir a la opcin el atributo
SELECTED.
El siguiente ejemplo muestra tres listas: una lista normal, una lista normal que
muestra tres opciones a la vez y posee una seleccionada por defecto y una lista mltiple. En la Figura 6.40 se puede observar como se visualiza esta pgina en un navegador.
Ejemplo 6.34
1
2
3
4
<HTML>
<BODY>
<FORM>
Lista de seleccin normal:
30 Para
y la tecla
Mays ()
ltima).
31 En HTML
obligatoria.
Control
</OPTION>
XHTML
1.0 es
156
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Captulo 6. HTML
<SELECT NAME="provincia">
<OPTION VALUE="1">Alicante</OPTION>
<OPTION VALUE="2">Valencia</OPTION>
<OPTION VALUE="3">Castelln</OPTION>
</SELECT>
<BR><BR><BR><BR>
Lista de seleccin normal de tamao 3:
<SELECT NAME="universidad" SIZE="3">
<OPTION VALUE="uv">Universidad de Valencia</OPTION>
<OPTION VALUE="uji">Universidad Jaime I</OPTION>
<OPTION VALUE="ua" SELECTED>Universidad de Alicante</OPTION>
<OPTION VALUE="upv">Universidad Politcnica de Valencia</OPTION>
<OPTION VALUE="umh">Universidad Miguel Hernndez</OPTION>
</SELECT>
<BR><BR><BR><BR>
Lista de seleccin mltiple:
<SELECT NAME="departamento" MULTIPLE>
<OPTION VALUE="dlsi">D. de Lenguajes y Sistemas Informticos</OPTION>
<OPTION VALUE="damma">D. de Anlisis M. y M. Aplicada</OPTION>
<OPTION VALUE="dfists">D. de Fsica e Ingeniera de Sistemas</OPTION>
<OPTION VALUE="dagr">D. de Anlisis Geogrfico Regional</OPTION>
<OPTION VALUE="mmlab">Laboratorio Multimedia</OPTION>
</SELECT>
</FORM>
</BODY>
</HTML>
6.14.6.
reas de texto
La etiqueta
den escribir varias lneas de texto. Esta etiqueta posee dos atributos que permiten
modicar su tamao. El atributo
COLS
ROWS
dene el
1
2
<HTML>
<BODY>
6.14. Formularios
157
3
4
5
6
7
8
9
10
11
<FORM>
rea 1:
<TEXTAREA ROWS="2" COLS="40">Texto por defecto...</TEXTAREA>
<BR>
rea 2:
<TEXTAREA ROWS="4" COLS="20"></TEXTAREA>
</FORM>
</BODY>
</HTML>
6.14.7.
Alineamiento de formularios
1
2
<HTML>
<BODY>
158
Captulo 6. HTML
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<FORM>
Nombre empresa: <INPUT TYPE="TEXT" NAME="nombreempresa" SIZE="40">
<BR>
Nombre: <INPUT TYPE="TEXT" NAME="nombre" SIZE="20">
<BR>
Apellidos: <INPUT TYPE="TEXT" NAME="apellidos" SIZE="30">
<BR>
Direccin: <INPUT TYPE="TEXT" NAME="direccion" SIZE="40">
<BR>
Poblacin:
<SELECT NAME="poblacion">
<OPTION VALUE="1">Alicante</OPTION>
<OPTION VALUE="2">Castelln</OPTION>
<OPTION VALUE="3">Valencia</OPTION>
</SELECT>
<BR>
Sexo:
<INPUT TYPE="RADIO" NAME="sexo" VALUE="H"> Hombre
<INPUT TYPE="RADIO" NAME="sexo" VALUE="M"> Mujer
<BR>
</FORM>
</BODY>
</HTML>
El siguiente ejemplo muestra el mismo formulario que antes, pero organizado gra-
cias al empleo de una tabla con bordes invisibles. En la Figura 6.43 se puede observar como se visualiza en un navegador. Aunque la pgina ha variado poco, ahora el
6.14. Formularios
159
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<HTML>
<BODY>
<CENTER>
<FORM>
<TABLE BORDER="0">
<TR>
<TD ALIGN="RIGHT">Nombre empresa:</TD>
<TD><INPUT TYPE="TEXT" NAME="nombreempresa" SIZE="40"></TD>
</TR>
<TR>
<TD ALIGN="RIGHT">Nombre:</TD>
<TD><INPUT TYPE="TEXT" NAME="nombre" SIZE="20"></TD>
</TR>
<TR>
<TD ALIGN="RIGHT">Apellidos:</TD>
<TD><INPUT TYPE="TEXT" NAME="apellidos" SIZE="30"></TD>
</TR>
<TR>
<TD ALIGN="RIGHT">Direccin:</TD>
<TD><INPUT TYPE="TEXT" NAME="direccion" SIZE="40"></TD>
</TR>
<TR>
<TD ALIGN="RIGHT">Poblacin:</TD>
<TD><SELECT NAME="poblacion">
<OPTION VALUE="1">Alicante</OPTION>
160
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Captulo 6. HTML
<OPTION VALUE="2">Castelln</OPTION>
<OPTION VALUE="3">Valencia</OPTION>
</SELECT></TD>
</TR>
<TR>
<TD ALIGN="RIGHT">Sexo:</TD>
<TD><INPUT TYPE="RADIO" NAME="sexo" VALUE="H"> Hombre
<INPUT TYPE="RADIO" NAME="sexo" VALUE="M"> Mujer</TD>
</TR>
</TABLE>
</FORM>
</CENTER>
</BODY>
</HTML>
6.15. Marcos
Un marco (frame ) es una regin de una ventana que acta como si fuera una
ventana ella misma. La ventana principal puede contener mltiples marcos, de forma
que diferentes regiones de la ventana muestren diferentes contenidos. A su vez, un
marco puede contener otros marcos y as sucesivamente.
Normalmente, los marcos se emplean para dividir la ventana del navegador en dos
partes: en una de ellas, la ms pequea, se muestra un ndice del sitio web (esta parte
no vara); en la otra, la ms grande, su contenido se modica segn los enlaces que se
pulsen en el ndice.
6.15. Marcos
161
Para denir los marcos se emplean las tres etiquetas siguientes: <FRAMESET> ...
</FRAMESET>, <FRAME> y <NOFRAMES> ... </NOFRAMES>.
La etiqueta <FRAMESET> ... </FRAMESET> dene un conjunto de marcos que van
a aparecer en la ventana. Esta etiqueta contiene una o ms etiquetas <FRAME> que
denen cada uno de los marcos. Los principales atributos de esta etiqueta son:
BORDER="anchura".
FRAMEBORDER="YES" | "NO".
COLS="listaAnchurasColumnas".
radas por comas. La anchura se puede indicar como nmero de pixels o como
un porcentaje sobre el total disponible (en este caso, el nmero se tiene que
acompaar del signo porcentaje). Por ejemplo, si se quiere dividir la ventana
del navegador en dos columnas que ocupan el 30 y 70 por ciento:
Ejemplo 6.38
<FRAMESET COLS="30%,70%">
<FRAMESET ROWS="10%,80%,10%">
La etiqueta
<FRAMESET>
<FRAMESET>.
<FRAME> dene un marco, que es una regin de una ventana con conte-
nido propio y que se puede navegar de forma independiente. Cada marco tiene su propia
SRC="URL".
Indica la
162
Captulo 6. HTML
FRAMEBORDER="YES" | "NO".
... </FRAMESET>.
<FRAMESET>
contenido en los navegadores que no pueden mostrar marcos. Los navegadores que s
que pueden mostrar marcos ignoran todo el contenido de esta etiqueta.
Lo interesante de los marcos es que se puede variar el contenido de los mismos de
forma independiente. Desde un marco se puede modicar el contenido de otro. Para
ello, se tiene que emplear un enlace (<A>
Este atributo debe de tomar el nombre del marco que se quiere modicar (el nombre
se habr indicado en la etiqueta
(marcoIzq y
marcoDer).
frame1a.html;
frame1b.html y frame1c.html segn se
seleccione en los enlaces que contiene marcoIzq. En la Figura 6.44 vemos el resultado
En el marco izquierdo se muestra la pgina
frame1.html:
Ejemplo 6.40
1
2
3
4
5
6
7
8
9
10
11
12
<HTML>
<HEAD>
<TITLE>Ejemplo de marcos</TITLE>
</HEAD>
<FRAMESET COLS="30%,70%" BORDER=10>
<FRAME SRC="frame1a.html" NAME="marcoIzq">
<FRAME SRC="frame1b.html" NAME="marcoDer">
<NOFRAMES>
Su navegador de Internet no permite mostrar marcos
</NOFRAMES>
</FRAMESET>
</HTML>
Pgina
frame1a.html:
Ejemplo 6.41
1
2
3
<HTML>
<HEAD>
<TITLE>Ejemplo de marcos</TITLE>
6.15. Marcos
4
5
6
7
8
9
10
11
12
13
14
163
</HEAD>
<BODY>
Esta pgina tiene que aparecer a la izquierda.
<BR><BR>
Si pincha <A HREF="frame1b.html" TARGET="marcoDer">aqu</A>,
a la derecha tiene que aparecer la pgina 1.
<BR><BR>
Si pincha <A HREF="frame1c.html" TARGET="marcoDer">aqu</A>,
a la derecha tiene que aparecer la pgina 2.
</BODY>
</HTML>
Pgina
frame1b.html:
Ejemplo 6.42
1
2
3
4
5
6
7
8
9
10
<HTML>
<HEAD>
<TITLE>Ejemplo de marcos</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
Esta es la pgina <B>1</B>.
<BR>
El color de fondo es blanco.
</BODY>
</HTML>
Pgina
frame1c.html:
Ejemplo 6.43
1
2
3
4
5
6
7
8
9
10
<HTML>
<HEAD>
<TITLE>Ejemplo de marcos</TITLE>
</HEAD>
<BODY BGCOLOR="#BBBBFF">
Esta es la pgina <B>2</B>.
<BR>
El color de fondo es azul.
</BODY>
</HTML>
6.15.1.
En
atributo
TARGET
de cualquier enlace:
164
Captulo 6. HTML
6.15. Marcos
_blank.
165
6.15.2.
Cuando se pulsa un enlace, el navegador enva una peticin al servidor web solicitando la pgina que indica el enlace. Adems, el navegador muestra en la barra de
direccin la
1
2
3
4
5
6
<HTML>
<FRAMESET ROWS="0,*" BORDER="0">
<FRAME>
<FRAME SRC="pagina.html">
</FRAMESET>
</HTML>
6.15.3.
La etiqueta
el atributo
Captulo 7
Gua de estilo
En este captulo se presentan una serie de consejos que si se aplican se evitar cometer
los errores ms comunes a la hora de crear un sitio web. Adems, tambin se incluyen una
serie de consejos sobre accesibilidad, tanto de cara al usuario como de cara al navegador.
ndice General
. . . . . . . . . . . . . . . . .
168
7.1.2.
. . . . . . . . . . . . . . . . . . .
168
7.1.3.
168
7.1.4.
169
7.1.5.
169
7.1.6.
169
7.1.7.
170
7.1.8.
170
7.1.9.
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
170
. . . . . . . . . . . . . . . . . . . .
171
171
171
171
. . . . . . . . . . . . . . . . . . . . . . . . . .
171
7.2.1.
173
7.2.2.
174
167
. . . . . . . . . . . . .
168
Captulo 7.
Gua de estilo
7.1.1.
HTML,
es recomendable
7.1.2.
Hay que llevar mucho cuidado con las combinaciones de colores que se emplean,
ya que algunas cuestan mucho de leer.
Si tenemos pginas con mucho texto, es conveniente usar una combinacin de
colores de alto contraste, que facilite la lectura: un color oscuro sobre un fondo claro
(negro o azul sobre blanco o un color crema) o al revs (un color claro para el texto
sobre un fondo oscuro).
7.1.3.
Cada navegador emplea unos colores por defecto para el color de fondo de una
pgina, para el color del texto, para los enlaces, etc. As, lo normal es que el color de
fondo de una pgina sea el blanco, el color del texto el negro y el color de los enlaces
el azul. Sin embargo, hay navegadores que no emplean estos colores. Por tanto, para
evitar problemas, lo mejor es congurar los colores de una pgina siempre, aunque se
empleen los colores que por defecto emplean la mayora de los navegadores.
Muy importante: cuando se modique uno de los colores por defecto (por ejemplo,
el color de fondo de una pgina) es muy recomendable modicar el resto de colores.
Imaginemos que puede ocurrir si slo se cambia el color de fondo de una pgina a
amarillo en un navegador en el que los colores por defecto del fondo de la pgina y
del texto son azul oscuro y amarillo respectivamente: no se podr leer ningn texto.
7.1.
Gua de estilo
7.1.4.
169
Verdana)
sans-serif1
(como
7.1.5.
... </FRAMESET>)
<FRAMESET>
7.1.6.
Hay que intentar crear pginas web que quepan en una ventana, es decir, que
no sea necesario emplear las barras de desplazamiento para ver todo el contenido de
una pgina. Si el usuario tiene que emplear las barras de desplazamiento para leer
una pgina acabar cansndose. Sobretodo, hay que evitar la aparicin de la barra
de desplazamiento horizontal, ya que es la que ms diculta la lectura de una pgina
web.
1 En
espaol este tipo de letra se conoce como sin gracias. Los serifs son pequeas lneas
decorativas en los extremos de los caracteres. Para textos impresos en papel los tipos de letra
serif
facilitan la lectura, ya que varios experimentos han demostrado que los serifs de los caracteres
ayudan a jar la vista en la lnea que se est leyendo. Los tipos de letra
Times Roman.
serif
ms comunes son
170
Captulo 7.
7.1.7.
Gua de estilo
Las imgenes de fondo mal utilizadas pueden originar varios problemas. Por un
lado, si tienen muchos colores y detalles pueden ocultar otros detalles de la pgina e
impedir la lectura correcta del texto.
Por otro lado, cuando la imagen tiene un tamao menor que la ventana del navegador, la imagen se muestra en forma de mosaico hasta cubrir toda la ventana
del navegador. Si usamos una imagen con un tamao que cubre toda la ventana para
una resolucin de pantalla dada, cuando se emplee una resolucin mayor la imagen
se mostrar varias veces hasta cubrir toda la ventana y puede ser que se produzcan
efectos indeseados si no hemos preparado la imagen para que se muestre en forma de
mosaico.
7.1.8.
7.1.9.
Como se suele decir, una imagen vale ms que mil palabras. Pero hay que tener
cuidado: el uso de muchas imgenes puede confundir al usuario. Adems, hay que
tener en cuenta la velocidad de transferencia: las imgenes emplean muchos kilobytes,
lo que aumenta el tiempo que tarda en cargarse una pgina. Por ello, hay que calcular
el tiempo que tarda en cargarse una pgina segn diferentes velocidades de conexin y
ponerse un lmite de unos 10 segundos como mximo. Por ejemplo, con un mdem de
56 Kbps (bits por segundo) en 10 segundos se pueden recibir unos 70 KB (bytes) y con
una lnea Asymmetric Digital Subscriber Line (
Un truco muy importante: una vez cargada una imagen, el navegador la almacena
en la cache; cuando volvamos a emplear esa misma imagen en otra pgina, no necesitar descargarla otra vez. Para que nuestras pginas se carguen ms rpidamente,
es aconsejable combinar los mismos elementos grcos (iconos, lneas, imgenes de
fondo, etc.) en todas nuestras pginas.
Tambin hay que tener en cuenta que si una pgina es muy compleja, con muchas
tablas e imgenes, segn la velocidad del ordenador el navegador puede tardar varios
segundos en mostrar la pgina (incluso aunque haya recibido todos los datos que
denen la pgina).
2 Todo
7.1.
Gua de estilo
7.1.10.
171
Identidad corporativa
Hay que intentar conseguir una identidad corporativa en todas las pginas: emplear los mismos tipos de letra, colores, imgenes de fondo, iconos, etc., para dotar a
las pginas de un estilo homogneo. De esta forma, el usuario se sentir inmerso en
las pginas.
7.1.11.
En todas las pginas (o por lo menos en la inicial y en la principal) hay que incluir
una direccin de contacto para que los usuarios se puedan comunicar. De este modo,
se podrn recibir sugerencias, indicaciones de cmo mejorar las pginas o errores
localizados.
7.1.12.
7.1.13.
No hay nada peor que encontrar enlaces rotos: enlaces que apuntan a pginas
o recursos que no existen, porque se hayan borrado, cambiado de nombre, movido
de sitio o porque falle la ruta de acceso. Una revisin peridica del sitio web puede
ahorrar al usuario muchos problemas. Adems, es importante indicar la fecha de la
ltima modicacin y las novedades aadidas. Esto permite, entre otras cosas, que el
usuario se asegure de la seriedad del autor de las pginas y facilita la navegacin a
los usuarios asiduos.
Por otro lado, si una pgina aparece con un signo en construccin y su ltima
revisin es del ao anterior, el usuario pensar que es mejor buscar lo que quiere en
otra parte.
7.1.14.
Los enlaces
La eleccin del lugar apropiado para poner los enlaces es crucial para una correcta
presentacin del hipertexto. Por ejemplo, comprense los dos siguientes trozos de
cdigo
172
1
2
Captulo 7.
Gua de estilo
1
2
3
haga click
porque la gente no
7.2. Accesibilidad
Aunque
compaas que crean los principales navegadores web emplean su propia versin del
estndar. Esta se suele diferenciar en varios aspectos:
W3C.
No incorpora etiquetas o atributos que estn denidos en el estndar de W3C.
Incorpora etiquetas o atributos que no estn denidos en el estndar de
W3C.
Si se crea un sitio web para publicar en Internet, se tienen que evitar los diseos
que limitan la consulta de las pginas web a determinados navegadores. Sobre este
tema, Tim Berners-Lee se pronunci a mediados de 1996:
Anyone who slaps a 'this page is best viewed with Browser X' label on a
Web page appears to be yearning for the bad old days, before the Web,
when you had very little chance of reading a document written on another
computer, another word processor, or another network.
7.2.
Accesibilidad
7.2.1.
173
WWW
y director de
El poder de la Web reside en su universalidad. Que cualquiera pueda acceder independientemente de minusvalas es un hecho esencial.
Tim Berners-Lee,
http://www.w3.org/WAI/
W3C ha
WAI), cuyo objetivo es aumentar la usabilidad
de la Web de cara a la gente con minusvalas. El WAI se estructura en tres grupos
Authoring Tool Accessibility Guidelines Working Group : guas para las herramientas de diseo web.
User Agent Accessibility Guidelines Working Group : guas para los navegadores.
Por ejemplo, Web Content Accessibility Guidelines 2.0 del 22 de agosto de 2002
contiene los siguientes consejos principales (cada consejo se divide en subconsejos y
dentro de cada uno existen tres niveles de cumplimiento segn los consejos que se
cumplan):
1.
2.
Operable. Garantiza que los elementos del interfaz pueden ser manejados por
cualquier usuario.
3.
4.
5.
174
Captulo 7.
Gua de estilo
Una de las ms famosas es Bobby , que verica tanto las guas establecidas por
W3C
como una normativa referente a la accesibilidad creada por el gobierno de los Estados
Unidos.
7.2.2.
Como el lenguaje
HTML
tion ) es la clave para lograr que una pgina sea accesible por la mayor parte de los
navegadores.
BGCOLOR
aunque sin un color de fondo. En este ltimo caso es cuando hablamos de degradacin
elegante.
3 Existe
index.jsp.
una
4 Tambin
versin
de
demostracin
en
http://bobby.watchfire.com/bobby/html/en/-
puede ser que el usuario haya desactivado alguna opcin, como puede ser la carga de
Captulo 8
Lenguajes de script
Los lenguajes de script permiten incluir programacin en las pginas web. En este
captulo se explican las principales caractersticas y las tres formas que existen de incluir
y ejecutar cdigo en una pgina web.
ndice General
8.1.
8.2.
8.3.
8.4.
Introduccin . . . . . . . . . . . . . . . . . . . . . . . .
Diferencias entre VBScript y JavaScript . . . . . . .
Para qu sirven . . . . . . . . . . . . . . . . . . . . . . .
Como se usa un lenguaje de script en un navegador
.
.
.
.
.
.
.
.
175
176
176
177
8.1. Introduccin
Un lenguaje de script (o lenguaje de guiones) es similar a un lenguaje de macros
o a un chero por lotes (batch ): una lista de comandos que se pueden ejecutar sin
o con la participacin del usuario. Se trata en denitiva de un lenguaje de programacin, que suele emplearse dentro de un contexto (dentro de una aplicacin) y que
no permite programar aplicaciones independientes (no permite crear cheros ejecutables independientes). Los lenguajes de script suelen ser interpretados, aunque algunos
pueden poseer una fase de pseudocompilacin con el n de optimizar su ejecucin.
Existen multitud de lenguajes de script que se pueden emplear en pginas web:
JavaScript , VBScript , Perl , Rexx ,
176
Captulo 8.
Lenguajes de script
n: dotar de un lenguaje de script rpido y sencillo a las pginas web. Cada uno de
estos lenguajes posee una serie de caractersticas que no posee el otro, pero ninguna
de las diferencias existentes entre ambos permite descartar un lenguaje por el otro.
Ambos poseen la misma potencia.
VBScript
lla de Microsoft. Como VBScript se dise especcamente para trabajar con navegadores, no incluye caractersticas que se escapan del mbito de los lenguajes de
ASP, etc.
y Java. Es conveniente aclarar desde un principio que JavaScript y Java son lenguajes
totalmente distintos, desarrollados por distintas compaas (Netscape y Sun Microsystems respectivamente) y que, en principio, slo comparten parte de la sin-
taxis y del nombre y poco ms. Se puede emplear en la mayora de los navegadores (Microsoft Internet Explorer, Netscape Communicator y Opera), en el servidor web
Netscape Enterprise Server y para programar con la tecnologa
ASP.
Mientras que los dos navegadores ms extendidos, Microsoft Internet Explorer y Netscape Communicator, admiten JavaScript , slo el primero admite VBScript . Por tanto,
si elegimos este lenguaje de script, estaremos limitando el acceso a las pginas web
que desarrollemos.
HTML
son:
Validar datos en el cliente y comprobar la consistencia de los valores antes de
mandar un formulario al servidor web (como, por ejemplo, comprobar que una
fecha tiene un valor adecuado y un formato correcto).
Actualizar campos relacionados en formularios (por ejemplo, establecer las opciones de una lista desplegable en funcin del valor seleccionado en unos botones
de radio).
8.4.
177
Realizar procesamientos que no requieran la utilizacin de informacin centralizada (por ejemplo, convertir pesetas en euros, visualizar el calendario del mes
actual, etc.).
Usando la etiqueta
HTML:
BODY.
SRC.
LANGUAGE
HEAD
script. Si se omite este atributo, cada navegador tiene denido por defecto un
1
2
3
4
<HTML>
<BODY>
<SCRIPT LANGUAGE="VBScript">
document.write "Esto lo ha escrito VBScript<BR>"
1 Por ejemplo, para el lenguaje JavaScript podemos usar los identicadores JavaScript, JavaScript1.1 , JavaScript1.2 y JavaScript1.3 .
2 Tanto
como
, si no se indica un lenguaje con
la etiqueta LANGUAGE, suponen que se trata de JavaScript.
Netscape Communicator
3 No
es ms difcil y su ejecucin es ms lenta, ya que se tiene que activar un intrprete distinto para cada
lenguaje.
178
Captulo 8.
5
6
7
8
9
10
Lenguajes de script
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
document.write("Esto lo ha escrito JavaScript<BR>");
</SCRIPT>
</BODY>
</HTML>
Mediante el atributo
SRC
pgina, aunque no es un sistema seguro, ya que cualquier usuario con unos conocimientos mnimos puede acceder al chero que contiene el cdigo. La ventaja principal de este sistema es que permite compartir el mismo cdigo entre
distintas pginas web. De este modo, se pueden crear libreras de cdigo.
2.
HTML
HTML
<A>)
go. El siguiente ejemplo muestra como gestionar los eventos de pulsacin sobre
botones (<INPUT
TYPE="BUTTON">)
mediante el atributo
ONCLICK.
Ejemplo 8.2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<HTML>
<HEAD>
<SCRIPT LANGUAGE="VBScript">
Sub PulsadoVBS
alert "Pulsado el botn VBScript"
End Sub
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
function PulsadoJS()
{
alert("Pulsado el botn JavaScript");
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="Formulario">
<INPUT TYPE="BUTTON" VALUE="VBScript" ONCLICK="PulsadoVBS"
LANGUAGE="VBScript">
<BR>
<INPUT TYPE="BUTTON" VALUE="JavaScript" ONCLICK="PulsadoJS()"
8.4.
21
22
23
24
3.
179
LANGUAGE="JavaScript">
</FORM>
</BODY>
</HTML>
URL. Esto
permite que el script se ejecute cuando el usuario pulsa sobre un enlace. El siguiente ejemplo muestra una pgina con dos enlaces. Al pulsar sobre uno de ellos
se abre una ventana nueva que muestra un mensaje. En la Figura 8.1 se muestra
la ventana que se abre al ejecutar cdigo de JavaScript y en la Figura 8.2 se
muestra el resultado de pulsar el enlace que ejecuta cdigo de VBScript .
Ejemplo 8.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<HTML>
<HEAD>
<TITLE>Cdigo de JavaScript y VBScript en una misma pgina</TITLE>
<SCRIPT LANGUAGE="VBScript">
Sub PulsadoVBS
alert "Pulsado el enlace VBScript"
End Sub
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
function PulsadoJS()
{
alert("Pulsado el enlace JavaScript");
}
</SCRIPT>
</HEAD>
<BODY>
<A HREF="javascript:PulsadoJS()">JavaScript</A>
<BR>
<A HREF="javascript:PulsadoVBS()">VBScript</A>
</BODY>
</HTML>
camos el lenguaje que estamos empleando, y a continuacin gura el cdigo a ejecutar. Como vemos en el ejemplo, desde JavaScript se puede llamar a funciones escritas
en VBScript y viceversa, pero como se ha comentado previamente, no se recomienda
mezclar distintos lenguajes de script en una misma pgina.
180
Captulo 8.
Lenguajes de script
Captulo 9
JavaScript
En el captulo anterior hemos visto los lenguajes de script en general. En este captulo
vamos a estudiar un lenguaje de script concreto: JavaScript. Este lenguaje es el ms
empleado en Internet y se puede considerar el lenguaje estndar de programacin de
clientes web. Veremos sus caractersticas bsicas, sus diferentes sentencias, las funciones
que incorpora y, por ltimo, como validar formularios.
ndice General
Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . .
183
9.1.2.
. . . . . . . .
184
9.1.3.
JavaScript y Java . . . . . . . . . . . . . . . . . . . . . . .
184
9.1.4.
Versiones
184
9.1.5.
JavaScript y ECMA
9.1.6.
JScript
9.1.7.
. . . . . . . . . . .
187
9.2.1.
Caractersticas bsicas . . . . . . . . . . . . . . . . . . . .
189
9.2.2.
Comentarios
. . . . . . . . . . . . . . . . . . . . . . . . .
191
9.2.3.
Declaracin de variables . . . . . . . . . . . . . . . . . . .
191
9.2.4.
. . . . . . . . . . . . . . . . . . .
193
9.2.5.
Caracteres especiales . . . . . . . . . . . . . . . . . . . . .
194
9.2.6.
Operadores
195
9.2.7.
Palabras reservadas
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
187
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
187
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
197
182
Captulo 9. JavaScript
9.3.1.
Condicionales . . . . . . . . . . . . . . . . . . . . . . . . .
197
9.3.2.
De repeticin . . . . . . . . . . . . . . . . . . . . . . . . .
200
9.3.3.
De manipulacin de objetos . . . . . . . . . . . . . . . . .
205
9.4.1.
. . . . . . . . . . . . . . . . . .
208
9.4.2.
Funciones predenidas . . . . . . . . . . . . . . . . . . . .
209
9.5.1.
Creacin de objetos
213
9.5.2.
Mtodos de un objeto
. . . . . . . . . . . . . . . . . . . .
215
9.5.3.
Eliminacin de objetos . . . . . . . . . . . . . . . . . . . .
216
9.8.1.
226
9.8.2.
Validacin alfabtica . . . . . . . . . . . . . . . . . . . . .
228
9.8.3.
Validacin numrica
231
9.8.4.
235
9.1. Introduccin
JavaScript
orientado a objetos puro) y multiplataforma, inventado por Netscape Communications Corporation. Los navegadores de Netscape fueron los primeros que usa-
ron JavaScript . El primer nombre ocial de este lenguaje fue LiveScript y apareci
por primera vez en la versin beta de Netscape Navigator 2.0 en septiembre de 1995,
pero poco despus fue rebautizado JavaScript en un comunicado conjunto con Sun
String,
DOM.
1 Netscape and Sun announce Javascript, the open, cross-platform object scripting language for
enterprise networks and the Internet , nota de prensa disponible en
newsref/pr/newsrelease67.html.
http://home.netscape.com/-
9.1.
Introduccin
JavaScript
183
9.1.1.
Aplicaciones
onChange
onClick
onSubmit
en el formulario.
prendentes.
184
Captulo 9. JavaScript
9.1.2.
Para poder programar en JavaScript no hace falta ningn equipo especial ni comprar un entorno de desarrollo especco. Slo es necesario un editor de textos como
Bloc de notas de Microsoft Windows o joe de Linux y un navegador como Netscape Communicator o Microsoft Internet Explorer que soporte JavaScript para poder comprobar
el cdigo.
No es necesario disponer de una conexin a Internet, ya que se puede comprobar
localmente el cdigo creado.
Lo que s que es recomendable es utilizar un buen editor de textos, que sea cmodo,
congurable, soporte macros, etc. y que sea syntax highlight. Esta ltima caracterstica signica que el editor es capaz de comprender el lenguaje en el que se programa, y colorea las palabras diferencindolas segn sean variables, palabras reservadas,
comentarios, etc.
9.1.3.
JavaScript y Java
JavaScript
pilacin (aunque no se genera cdigo mquina, sino los llamados bytecodes que luego
son interpretados por la mquina virtual Java ). JavaScript tiene un pequeo nmero
de tipos de datos: nmeros (enteros y en coma otante), booleanos y cadenas. JavaScript
basa en clases.
JavaScript
necesario declarar las variables, clases y mtodos. No hay que preocuparse con mtodos
pblicos, privados o protegidos, y no hay que implementar interfaces. En el Cuadro 9.1
se resumen las principales diferencias existentes entre JavaScript y Java.
9.1.4.
Versiones
Cada versin de los navegadores soporta una versin diferente de JavaScript . Cada
nueva versin de JavaScript aade nuevas caractersticas al lenguaje (y corrige fallos de
las anteriores). El Cuadro 9.2 muestra las distintas versiones de JavaScript soportadas
por las diferentes versiones de Netscape Navigator. Las versiones anteriores a la 2.0 no
2 En http://www.mozilla.org/js/language/js20/
versin.
9.1.
Introduccin
185
JavaScript
Interpretado
Java
(no
compilado)
por
el
cliente.
forma dinmica.
ma dinmica.
cdigo
HTML.
Versin de JavaScript
Versin de Navigator
JavaScript 1.0
Navigator 2.0
JavaScript 1.1
Navigator 3.0
JavaScript 1.2
JavaScript 1.3
JavaScript 1.4
JavaScript 1.5
JavaScript 2.0
En desarrollo
186
Captulo 9. JavaScript
Ejemplo 9.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<HTML>
<HEAD>
<TITLE>Ejemplo version JavaScript</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SCRIPT LANGUAGE="JavaScript">
<!-var version = "JavaScript"
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.1">
<!-version = "JavaScript 1.1"
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.2">
<!-version = "JavaScript 1.2"
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.3">
<!-version = "JavaScript 1.3"
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.4">
<!-version = "JavaScript 1.4"
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript1.5">
<!-version = "JavaScript 1.5"
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!-document.write("Soporta " + version);
// -->
</SCRIPT>
</BODY>
</HTML>
LANGUAGE
de la
9.1.
Introduccin
etiqueta
187
Como las versiones aparecen de menor a mayor, cuando se llegue a una versin que
no se admita, la variable
9.1.5.
JavaScript y ECMA
Aunque Netscape invent JavaScript y sus navegadores fueron los primeros que lo
soportaron, Netscape trabaja estrechamente con European Computer Manufacturers
Association (
JavaScript .
La versin estandarizada de JavaScript , llamada ECMAScript se debe de comportar de forma idntica en todas las aplicaciones que soportan el estndar. La primera
versin de ECMAScript se detalla en la especicacin ECMA-262 Edition 1. Este estndar tambin ha sido aprobado por International Organization for Standards (
ISO)
ECMA. Pero estas caractersticas no impiden que JavaScript sea compatible con
ECMA.
de
9.1.6.
JScript
JScript
de pginas
9.1.7.
188
Captulo 9. JavaScript
Versin de JavaScript
Versin de ECMA
JavaScript 1.1
JavaScript 1.2
JavaScript 1.3
JavaScript 1.4
JavaScript 1.5
Versin de JScript
Productos de Microsoft
JScript v1
Internet Explorer 3
JScript v2
JScript v3
Internet Explorer 4
JScript v4
JScript v5
Cuadro 9.4: Relacin entre las versiones de JScript y los productos de Microsoft
9.2.
El lenguaje
189
Por ejemplo, el siguiente cdigo produce distintos resultados al ejecutarse en Netscape Communicator o Microsoft Internet Explorer. La diferencia se encuentra en que el
primero convierte automticamente a entero el valor de la variable
a,
que almacena
1
2
3
4
5
6
7
8
9
10
<HTML>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
a = "1";
switch(a)
{
case 0:
document.write("0");
break;
11
case 1:
document.write("1");
break;
12
13
14
15
case 2:
document.write("2");
break;
16
17
18
19
default:
document.write("Ninguno");
break;
20
21
22
23
24
25
26
}
</SCRIPT>
</BODY>
</HTML>
1.
Ninguno.
9.2. El lenguaje
9.2.1.
Caractersticas bsicas
3
3A
Java.
190
Captulo 9. JavaScript
poco esfuerzo. Los comentarios, las funciones, las sentencias de control, etc., poseen
la misma sintaxis que en C . JavaScript es un lenguaje basado en objetos, pero no
orientado a objetos como Java y C++. El objetivo de JavaScript es conseguir cdigo
sencillo y reducido, no crear programas grandes y complejos.
JavaScript
quiere decir que todas las palabras que usemos para referirnos a los distintos identicadores del lenguaje tendrn que ser escritas correctamente para que sean comprendidas por el intrprete de JavaScript . Por ejemplo, en el siguiente cdigo se declaran
tres variables que son distintas:
Ejemplo 9.3
1
2
3
}).
de cdigo:
Ejemplo 9.5
2
3
4
5
9.2.
1
2
3
El lenguaje
191
9.2.2.
Comentarios
JavaScript
encuentra las dos barras hasta que llega al nal de la lnea, todo el texto
barra inclinada y asterisco (/*) y viceversa (*/). Estos smbolos denen zonas de
comentario que pueden extenderse a travs de varias lneas.
Ejemplo 9.7
1
2
3
4
5
6
7
9.2.3.
Declaracin de variables
var.
Al con-
trario que en otros lenguajes, no es necesario declarar las variables que se emplean,
pero es una buena costumbre.
No todas las palabras sirven para denir variables. Existen tres normas que hay
que cumplir:
Un nombre de variable vlido se compone nicamente de una palabra (sin espacios), pudiendo estar formada por letras, nmeros o el guin de subrayado
(_).
El primer carcter del nombre de la variable deber ser siempre una letra o el
carcter de guin de subrayado. No podr ser un nmero.
El nombre de la variable no debe coincidir con ninguna de las palabras reservadas.
192
Captulo 9. JavaScript
null.
El empleo
1
2
3
4
5
6
7
8
9
// Declaraciones correctas
var _nombre, _apellido1, _apellido2;
var Provincia = "Alicante";
var ciudad1, ciudad2;
var codigo_postal = "03001";
// Declaraciones incorrectas
var 12edad;
var var;
JavaScript
de las variables para trabajar con ellas, porque l mismo se encarga de reconocer que
es lo que se quiere almacenar. Los distintos tipos de datos que puede almacenar una
variable en JavaScript son:
Cadenas. Las cadenas de texto se delimitan por comillas dobles (") o comillas
simples (') y pueden contener cualquier tipo de combinacin de nmeros, letras,
espacios y smbolos. El uso de los dos tipos de comillas tiene su sentido, ya que
debido a que JavaScript se usa conjuntamente con el lenguaje
HTML, y como
ste usa las comillas dobles en su sintaxis, tiene que haber algn mtodo de
distinguir las cadenas de JavaScript de las cadenas de
Nmeros enteros.
HTML.
Por ejemplo:
null.
Por
9.2.
El lenguaje
193
Ejemplo 9.9
1
2
3
4
5
9.2.4.
var nombre;
if(nombre == null)
{
alert("Introduzca su nombre, por favor");
}
var,
fun(),
variable global
c.
fun2();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<HTML>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
var a = "Juan";
b = "Jose";
var c = "Ana";
function fun2()
{
document.write("fun2-c- " + c + "<BR>");
}
function fun()
{
var c = "Maria";
16
17
18
19
20
21
c.
local
Ejemplo 9.10
a, b
194
22
23
24
25
26
27
28
Captulo 9. JavaScript
fun();
document.write("-c-" + c + "<BR>");
</SCRIPT>
</BODY>
</HTML>
El cdigo anterior produce la siguiente salida en un navegador:
Ejemplo 9.11
1
2
3
4
5
fun1-afun1-bfun2-cfun1-c-c- Ana
9.2.5.
Juan
Jose
Ana
Maria
Caracteres especiales
ASCII. El Cuadro 9.5 muestra los caracteres especiales que se pueden emplear
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<HTML>
<HEAD>
<TITLE>Ejemplo de caracteres especiales</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
document.write("Distintas formas de representar el carcter 'A':");
document.write("<BR>");
document.write("\\101 produce: \101<BR>");
document.write("\\x41 produce: \x41<BR>");
document.write("\\u0041 produce: \u0041<BR>");
document.write("<BR>");
document.write("Algunos caracteres interesantes:");
document.write("<BR>");
document.write("\\251 produce: \251<BR>");
document.write("\\252 produce: \252<BR>");
document.write("\\256 produce: \256<BR>");
9.2.
El lenguaje
195
Carcter
Signicado
\b
\f
\n
\r
\t
\'
\"
\\
\XXX
Retroceso (backspace )
Salto de pgina (form feed )
Salto de lnea (new line )
Retorno de carro (carriage return )
Tabulador
Apstrofe o comilla simple
Comilla doble
Barra invertida (backslash )
El carcter de la codicacin Latin-1
especicado por los tres dgitos octales
entre 0 y 377.
\xXX
\uXXXX
18
19
20
21
22
23
9.2.6.
Operadores
Los operadores son los signos que se usan para referirse a distintas operaciones
que se pueden realizar con las variables y con las constantes, tales como suma, resta,
incremento, etc.
La precedencia de los operadores determina el orden en que se aplican cuando se
evala una expresin. Se puede anular la precedencia usando parntesis. El Cuadro 9.6
muestra la precedencia de los operadores, de menos a ms. Los operadores que se
encuentran en un mismo nivel poseen la misma precedencia.
196
Captulo 9. JavaScript
Tipo de operador
Coma
Asignacin
Condicional
O lgico (OR)
Y lgico (AND)
O bit a bit (OR)
O exclusiva bit a bit (XOR)
Y bit a bit (AND)
Igualdad
Relacional
Desplazamiento bit a bit
Suma y resta
Multiplicacin y divisin
Negacin e incremento
Llamada a funcin
Creacin de instancias
Miembro
Operadores
,
= += -= *= /= %= <<= >>= >>>= &=
^= |=
?:
||
&&
|
^
&
== != === !==
< <= > >=
<< >> >>>
+ * / %
! ~ - + ++ -- typeof void delete
()
new
. []
9.3.
Sentencias
9.2.7.
197
Palabras reservadas
Las palabras reservadas (reserved words ) no se pueden usar como nombres de variables, funciones, mtodos u objetos. Algunas de las palabras reservadas son palabras
clave (keywords ) de JavaScript , mientras que otras se han reservado para futuros usos.
En el Cuadro 9.7 se muestran las palabras reservadas de JavaScript 1.3.
abstract
boolean
break
byte
case
catch
char
class
default
const
continue
debugger
delete
do
double
else
enum
export
extends
false
nal
nally
oat
for
function
goto
if
implements
import
in
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
super
switch
synchronized
this
throw
throws
transient
true
try
typeof
var
void
volatile
while
with
9.3. Sentencias
Vamos a detallar las sentencias que incluye el lenguaje JavaScript . Todas estas
sentencias son anidables: se pueden incluir unas dentro de otras tantas veces como se
quiera.
9.3.1.
Condicionales
... else
switch.
if
if . . . else
La sentencia de seleccin simple posee la siguiente sintaxis (la parte entre corchetes
es opcional):
198
Captulo 9. JavaScript
Ejemplo 9.13
1
2
3
4
5
6
7
8
if(condicion)
{
sen1
}
[else
{
sen2
}]
El conjunto de sentencias
se ejecuta
sen2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
var a;
a = prompt("Escriba un nmero, por favor", "");
if(a <= 1)
{
alert("Es menor o igual que 1");
}
else if(a <= 5)
{
alert("Es mayor que 1, pero menor o igual que 5");
}
else
{
alert("Es mayor que 1");
}
</SCRIPT>
<TITLE>Ejemplo if</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
</BODY>
</HTML>
switch
La sentencia de seleccin mltiple posee la siguiente sintaxis:
9.3.
Sentencias
199
Ejemplo 9.15
1
2
3
4
5
6
7
8
9
10
11
12
switch(expresion)
{
case et1 :
sen1;
[break;]
case et2 :
sen2;
[break;]
...
[default :
sen;]
}
La sentencia
que case con el resultado de la evaluacin. Si se logra casar, se ejecutan las sentencias
asociadas con esa etiqueta. Si no se logra ningn emparejamiento, se busca la etiqueta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
var a;
a = prompt("Cuntos hijos tiene?", "");
switch(a)
{
case 0: alert("Anmese un da de estos");
break;
case 1: alert("Puede tener ms");
break;
case 2: alert("Ya tiene la parejita, ahora a por el tro");
break;
default: alert("Una familia como las de antes: muchos hijos");
break;
}
</SCRIPT>
200
19
20
21
22
23
Captulo 9. JavaScript
<TITLE>Ejemplo switch</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
</BODY>
</HTML>
9.3.2.
De repeticin
while.
for
La sintaxis de la repeticin con contador es la siguiente:
Ejemplo 9.17
1
2
3
4
for
expInicial,
se ejecuta. La expresin
Se evala la expresin
3.
Si el valor de
Si el valor de
4.
condicion.
La expresin de actualizacin
expIncremento
vuelve al paso 2.
Como ejemplo tenemos el siguiente cdigo con un bucle que se repite 10 veces. En
la Figura 9.2 se muestra esta pgina en un navegador.
Ejemplo 9.18
1
2
3
4
<HTML>
<HEAD>
<TITLE>Ejemplo for</TITLE>
</HEAD>
9.3.
5
6
7
8
9
10
11
12
13
14
15
Sentencias
201
<BODY BGCOLOR="#FFFFFF">
<SCRIPT LANGUAGE="JavaScript">
var a;
for(a = 1; a <= 10; a++)
{
document.write("Vamos por el nmero " + a + "<BR>\n");
}
</SCRIPT>
</BODY>
</HTML>
do . . . while
La sentencia de repeticin con condicin nal posee la siguiente sintaxis:
Ejemplo 9.19
1
2
3
4
do
{
sentencias
} while(condicion)
Las
202
Captulo 9. JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<HTML>
<HEAD>
<TITLE>Ejemplo do while</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<PRE>
<SCRIPT LANGUAGE="JavaScript">
var a, b;
a = 1;
do
{
b = a;
do
{
document.write(" ");
b--;
}
while(b > 0);
document.write(a + "<BR>\n");
a++;
}
while(a < 10);
</SCRIPT>
</PRE>
</BODY>
</HTML>
while
La sintaxis de la sentencia de repeticin con condicin inicial es la siguiente:
Ejemplo 9.21
1
2
3
4
while(condicion)
{
sentencias
}
Si
condicion
es falsa, las
sentencias
condicion
ocurre
9.3.
Sentencias
203
sentencias.
sentencias
no se ejecuten nunca.
Como ejemplo tenemos el siguiente cdigo, que crea las tablas de multiplicar del
1 al 10. En la Figura 9.3 se muestra esta pgina en un navegador.
Ejemplo 9.22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<HTML>
<HEAD>
<TITLE>Ejemplo while</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<PRE>
<SCRIPT LANGUAGE="JavaScript">
var a, b;
a = 1;
while(a <= 10)
{
document.write("Tabla del " + a + "\n");
document.write("------------\n");
b = 1;
while(b <= 10)
{
document.write(a + " x " + b + " = " + (a * b) + "\n");
b++;
}
document.write("\n");
a++;
}
</SCRIPT>
</PRE>
</BODY>
</HTML>
break
La sintaxis de esta sentencia es:
Ejemplo 9.23
1
2
3
break
o
break etiqueta
204
Captulo 9. JavaScript
9.3.
Sentencias
La sentencia
205
break
do..while, while)
o una
continue
La sintaxis de esta sentencia es:
Ejemplo 9.24
1
2
3
continue
o
continue etiqueta
9.3.3.
De manipulacin de objetos
for(... in ...)
with.
for(. . . in . . . )
La sintaxis de esta sentencia es:
Ejemplo 9.25
1
2
3
4
for(variable in objeto)
{
sentencias
}
Esta sentencia permite que una
objeto.
variable
sentencias.
Para acceder a
Como ejemplo tenemos el siguiente cdigo que muestra las propiedades del objeto
window
de
1
2
3
4
5
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function Propiedades(obj, obj_nombre)
{
4 DOM
206
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Captulo 9. JavaScript
with
La sintaxis de esta sentencia es:
Ejemplo 9.27
1
2
3
4
with(objeto)
{
sentencias
}
La sentencia
conjunto de
que se ejecutan un
mtodos del objeto.
De este modo, se evita tener que escribir el nombre del objeto cada vez.
Como ejemplo tenemos el siguiente cdigo:
Ejemplo 9.28
1
2
3
4
5
6
<HTML>
<HEAD>
<TITLE>Ejemplo with</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<PRE>
9.3.
Sentencias
207
208
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Captulo 9. JavaScript
<SCRIPT LANGUAGE="JavaScript">
with(Math)
{
document.write("E: " + E + "\n");
document.write("LN10: " + LN10 + "\n");
document.write("LN2: " + LN2 + "\n");
document.write("LOG10E: " + LOG10E + "\n");
document.write("LOG2E: " + LOG2E + "\n");
document.write("Pi: " + PI + "\n");
document.write("SQRT1_2: " + SQRT1_2 + "\n");
document.write("SQRT2: " + SQRT2 + "\n");
}
</SCRIPT>
</PRE>
</BODY>
</HTML>
9.4. Funciones
Una funcin es un fragmento de cdigo al que se suministran unos datos determinados (parmetros o argumentos), ejecuta un conjunto de sentencias y puede devolver
un resultado.
9.4.1.
function.
El nombre de la funcin.
Una lista de argumentos, encerrados entre parntesis y separados por comas.
Una funcin puede tener cero o ms argumentos.
Las sentencias que denen la funcin, encerradas entre llaves. Las sentencias
dentro de una funcin pueden llamar a su vez a otras funciones o a la misma
funcin (recursividad).
Por tanto, la sintaxis de una funcin es:
Ejemplo 9.29
1
2
3
4
9.4.
Funciones
209
</HEAD>
<HEAD> ...
primero que se carga. De otro modo, el usuario podra realizar alguna accin (por
ejemplo, lanzar un evento) que llamase a una funcin que no ha sido denida an, lo
que producira un error.
Por ejemplo, el siguiente cdigo dene dos funciones llamadas
cuadrado
cubo
que calculan el cuadrado y el cubo del nmero que reciben como argumento respectivamente:
Ejemplo 9.30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<HTML>
<HEAD>
<TITLE>Ejemplo function</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<PRE>
<SCRIPT LANGUAGE="JavaScript">
var a;
function cuadrado(numero)
{
return numero * numero;
}
function cubo(numero)
{
return numero * numero * numero;
}
a = prompt("Escribe un nmero entero:", "");
alert("El cuadrado de " + a + " es " + cuadrado(a));
a = prompt("Escribe un nmero entero:", "");
alert("El cubo de " + a + " es " + cubo(a));
</SCRIPT>
</PRE>
</BODY>
</HTML>
La instruccin
9.4.2.
Funciones predenidas
JavaScript
210
Captulo 9. JavaScript
eval
Evala una expresin que contiene cdigo de JavaScript . La sintaxis es
donde
expr
eval(expr),
1
2
3
4
5
6
7
8
9
10
11
12
13
<HTML>
<HEAD>
<TITLE>Ejemplo eval</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SCRIPT LANGUAGE="JavaScript">
var a = 1, b = 2, c = 3, d = 4, e = 5, v;
v = prompt("Escriba una letra de la 'a' a la 'e'", "");
alert("El valor de '" + v + "' es " + eval(v));
</SCRIPT>
</BODY>
</HTML>
isFinite
Determina
isFinite(num)
si
el
argumento
representa
un
nmero
nito.
La
sintaxis
es
1
2
3
4
5
6
7
8
9
10
11
12
<HTML>
<HEAD>
<TITLE>Ejemplo isFinite</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SCRIPT LANGUAGE="JavaScript">
v = prompt("Escriba un nmero", "");
if(isFinite(v))
alert("Correcto, es un nmero");
else
alert("Te has equivocado");
</SCRIPT>
9.4.
13
14
Funciones
211
</BODY>
</HTML>
isNaN
"NaN" (not a number, no un nmero). La sintaxis es
num es el numero que se quiere evaluar.
Las funciones parseFloat y parseInt devuelven "NaN" cuando evaluan un valor
que no es un nmero. La funcin isNaN devuelve true si el argumento es "NaN" y false
Determina si el argumento es
isNaN(num)
donde
en caso contrario.
parseInt y parseFloat
Las dos funciones de conversin
mrico a partir de una cadena.
La sintaxis de
parseFloat
es
parseInt
parseFloat
parseFloat(cad),
donde
cad
es la cadena que se
parseInt
es
la cadena
"NaN"
Number y String
Las funciones
un objeto
Ejemplo 9.33
1
2
3
4
5
<HTML>
<HEAD>
<TITLE>Ejemplo Number-String</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
212
6
7
8
9
10
11
12
13
14
15
16
17
Captulo 9. JavaScript
<SCRIPT LANGUAGE="JavaScript">
// Obtiene la fecha actual
var d = new Date();
// Milisegundos transcurridos desde el 1 de enero de 1970
alert("Milisegundos transcurridos: " + Number(d));
// Formato mas adecuado
alert("Fecha: " + String(d));
</SCRIPT>
</BODY>
</HTML>
escape y unescape
escape y unescape permiten codicar y decodicar cadenas. La funescape devuelve la codicacin hexadecimal de su argumento codicado en ISO
Latin-1. La funcin unescape devuelve la cadena correspondiente a la codicacin hexadecimal pasada como argumento. La sintaxis de estas funciones es escape(string)
y unescape(string). Por ejemplo, el siguiente cdigo genera una pgina con un formulario con dos botones. Un botn aplica la funcin escape a la cadena que introduce
el usuario y el otro aplica la funcin unescape.
Las funciones
cin
Ejemplo 9.34
1
2
3
4
5
6
<HTML>
<HEAD>
<TITLE>Funcin predefinida escape()</TITLE>
<SCRIPT LANGUAGE="JavaScript"> function hazEscape()
{
var cadena;
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function hazUnescape() {
var cadena;
cadena = prompt("Escriba una cadena", "");
alert(unescape(cadena));
}
</SCRIPT>
</HEAD>
<BODY>
<CENTER>
9.5.
22
23
24
25
26
27
28
Objetos
213
<FORM NAME="formulario">
<INPUT TYPE="BUTTON" VALUE="escape" ONCLICK="hazEscape()">
<INPUT TYPE="BUTTON" VALUE="unescape" ONCLICK="hazUnescape()">
</FORM>
</CENTER>
</BODY>
</HTML>
9.5. Objetos
JavaScript
status
y al mtodo
alert
del objeto
window:
Ejemplo 9.35
1
2
1
2
9.5.1.
Creacin de objetos
214
Captulo 9. JavaScript
Inicializadores de objetos
La sintaxis de este mtodo es:
Ejemplo 9.37
donde
propiedad y
ejemplo,
asignatura.
el
siguiente
El objeto
cdigo
profesor
dene
dos
objetos
llamados
asignatura.
profesor
Ejemplo 9.38
1
2
3
4
5
6
7
8
9
Funciones constructoras
En este sistema se emplea una funcin que realiza el papel de constructor. Cuando
se crea el objeto, se emplea el operador
new
Este mtodo es mejor que el anterior, ya que permite crear un tipo para distintos
objetos. La sintaxis de este mtodo es:
Ejemplo 9.39
1
2
3
4
5
6
7
8
9
9.5.
Objetos
215
this
Pagina.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
9.5.2.
Mtodos de un objeto
Para denir un mtodo de un objeto, simplemente hay que asignar a una propiedad del objeto el nombre de una funcin. En la funcin, si se quiere acceder a las
this.
Ordenador. Estos objetos
ver
1
2
3
4
5
function ver()
{
document.write("CPU: " + this.cpu + "<BR>");
document.write("Velocidad: " + this.vel + " MHz<BR>");
document.write("Memoria: " + this.mem + " Mb<BR>");
216
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Captulo 9. JavaScript
9.5.3.
Eliminacin de objetos
true
si el borrado es correcto y
false
delete.
en caso contrario.
String:
s1
y el objeto de tipo
String. Por
String s2:
ejemplo, el
Ejemplo 9.42
1
2
3
4
5
9.6.
Tratamiento de cadenas
217
String.length
String
String:
split.
charAt(indice)
Devuelve el carcter especicado por
1
2
3
4
5
1
2
3
Carcter en 0 es H
Carcter en 1 es o
Carcter en 2 es l
1
2
3
4
5
6
7
var
var
var
var
var
cad1
cad2
cad3
cad4
cad5
=
=
=
=
=
"Hola";
" a";
" todo";
" el mundo";
cad1.concat(cad2, cad3, cad4);
document.writeln(cad5);
El cdigo anterior produce el siguiente resultado:
Ejemplo 9.46
218
Captulo 9. JavaScript
1
2
3
4
5
6
7
var
var
var
var
var
cad1
cad2
cad3
cad4
cad5
=
=
=
=
=
"Hola";
" a";
" todo";
" el mundo";
cad1 + cad2 + cad3 + cad4;
document.writeln(cad5);
fromCharCode(num1 [, num2, . . . ])
Devuelve una cadena formada por los caracteres representados mediante valores
Unicode que recibe la funcin.
Por ejemplo, el siguiente cdigo crea una tabla con los 256 caracteres
Figura 9.5.
Ejemplo 9.48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<HTML>
<HEAD>
<TITLE>Tabla de caracteres ASCII</TITLE>
</HEAD>
<BODY>
<TABLE BORDER="1">
<SCRIPT LANGUAGE="JavaScript">
for(i = 0; i < 16; i++)
{
document.writeln("<TR>");
for(j = 0; j < 16; j++)
{
document.write("<TD>");
document.write((i * 16 + j) + ": " +
String.fromCharCode(i * 16 + j));
document.write("</TD>");
}
document.writeln("</TR>");
}
</SCRIPT>
</TABLE>
</BODY>
</HTML>
ASCII
9.6.
Tratamiento de cadenas
219
220
Captulo 9. JavaScript
indexOf(valorBuscado [, inicio])
valorBuscado dentro de la cadena a partir del
inicio que es opcional) o -1 si no se encuentra. Ejemplo:
Ejemplo 9.49
1
2
3
4
5
6
7
8
9
10
11
var cuenta = 0;
var pos;
var cad = "Cadena con unas letras"
pos = cad.indexOf("a");
while(pos != -1)
{
cuenta++;
pos = cad.indexOf("a", pos + 1);
}
document.write("La cadena contiene " + cuenta + " aes");
El ejemplo anterior produce la siguiente salida:
Ejemplo 9.50
lastIndexOf(valorBuscado [, inicio])
Similar a la funcin
indexOf,
1
2
3
4
5
6
7
var pos;
var cad = "Cadena con unas letras"
pos = cad.lastIndexOf("a");
document.write("La ltima a est en " + pos + "<BR>");
pos = cad.lastIndexOf("a", pos - 1);
document.write("La penltima a est en " + pos + "<BR>");
1
2
La ltima a est en 20
La penltima a est en 13
inicio
9.6.
Tratamiento de cadenas
221
replace(exRegular, nuevaCadena)
Busca una expresin regular (exRegular) en una cadena y cada vez que se encuentra se sustituye por
el modicador
i. Ejemplo:
Ejemplo 9.53
1
2
3
4
5
6
1
2
slice(inicio [, n])
Extrae un trozo de una cadena desde
inicio
hasta
1
2
3
4
5
6
7
1
2
fin - 1.
Si no se indica
fin,
222
Captulo 9. JavaScript
split(separador [, limite])
separador. El resultado de la divisin se almalimite indica el nmero mximo de divisiones que se
Ejemplo 9.57
1
2
3
4
5
6
1
2
3
4
5
6
Posicion
Posicion
Posicion
Posicion
Posicion
Posicion
0:
1:
2:
3:
4:
5:
Juan
es
hermano
de
Juan
Luis
que permiten trabajar con constantes y funciones matemticas. Todos los mtodos y
Math para
Math.
Los principales mtodos del objeto Math son: abs, acos, asin, atan, ceil, cos,
sin, tan, exp, floor, log, max, min, pow, random, round y sqrt.
propiedades son estticos, por lo que no hace falta crear un objeto de tipo
abs(num)
Devuelve el valor absoluto de un nmero.
Ejemplo 9.59
1
2
3
4
document.write(Math.abs(3.5) + "<BR>");
document.write(Math.abs(2) + "<BR>");
document.write(Math.abs(-0.5) + "<BR>");
document.write(Math.abs(-4) + "<BR>");
9.7.
Operaciones matemticas
Propiedad
223
Descripcin
Constante de Euler, la base de los logaritmos naturales (neperianos). Aproximadamente 2.718
LN10
LN2
LOG10E
LOG2E
PI
SQRT1_2
SQRT2
1
2
3
4
3.5
2
.5
4
ceil(num)
Devuelve el entero menor mayor o igual que un nmero. Ejemplo:
Ejemplo 9.61
1
2
3
1
2
3
ceil(2): 2
ceil(2.0): 2
ceil(2.05): 3
224
Captulo 9. JavaScript
exp(num)
Devuelve E elevado a un nmero.
oor(num)
Devuelve el mayor entero menor o igual que un nmero. Ejemplo:
Ejemplo 9.63
1
2
3
4
1
2
3
4
floor(2): 2
floor(2.0): 2
floor(2.05): 2
floor(2.99): 2
log(num)
Devuelve el logaritmo natural (en base E) de un nmero.
1
2
1
2
max(3, 5): 5
min(3, 5): 3
9.7.
Operaciones matemticas
225
pow(base, exponente)
Devuelve la base elevada al exponente. Ejemplo:
Ejemplo 9.67
1
2
3
1
2
3
pow(2, 3): 8
pow(3, 4): 81
pow(5, 0): 1
random()
Produce un nmero pseudoaleatorio entre 0 y 1. Ejemplo:
Ejemplo 9.69
1
2
1
2
random(): .32779162476197754
random(): .8945828404144374
round(num)
Devuelve el entero ms cercano a un nmero. Si la parte decimal es menor que 0.5,
lo redondea al entero mayor menor o igual que el nmero; si la parte decimal es igual
o mayor que 0.5, lo redondea al entero menor mayor o igual que el nmero. Ejemplo:
Ejemplo 9.71
1
2
3
226
Captulo 9. JavaScript
1
2
3
round(3.49): 3
round(3.5): 4
round(3.51): 4
sqrt(num)
Devuelve la raz cuadrada de un nmero.
CGI
o una pgina
ASP
que
realice la misma funcin en el servidor, poder llevar a cabo este proceso en el cliente,
ahorra tiempo de espera a los usuarios, disminuye el nmero de conexiones al servidor
y limita la carga del servidor.
Antes de estudiar la validacin de formularios, conviene leer el Captulo 10, ya que
en l se explica
9.8.1.
compruebaVacio
1
2
3
4
5
6
7
<HTML>
<HEAD>
<TITLE>Validacin de un campo vaco</TITLE>
<SCRIPT LANGUAGE="JavaScript">
error = new creaError();
errores = new Array();
errores[0] = "Campo vaco";
9.8.
Validacin de formularios
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
error.valor = 1;
return true;
function valida()
{
if(compruebaVacio(document.formulario.campo.value, error))
alert("El campo no es correcto: " + errores[error.valor]);
else
227
228
38
39
40
41
42
43
44
45
46
47
48
49
50
Captulo 9. JavaScript
9.8.2.
Validacin alfabtica
compruebaAlfaMay
compruebaAlfa, compruebaAlfaMin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<HTML>
<HEAD>
<TITLE>Validacin alfabtica de un campo</TITLE>
<SCRIPT LANGUAGE="JavaScript">
mayusculas = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
minusculas = "abcdefghijklmnopqrstuvwxyz";
error = new creaError();
errores = new Array();
errores[1] = "Falta carcter alfabtico";
errores[2] = "Falta carcter alfabtico en minsculas";
errores[3] = "Falta carcter alfabtico en maysculas";
function creaError()
{
this.valor = 0;
this.posicion = 0;
return this;
}
9.8.
20
21
22
23
24
Validacin de formularios
function esMinuscula(c)
{
return minusculas.indexOf(c) >= 0;
}
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function esMayuscula(c)
{
return mayusculas.indexOf(c) >= 0;
}
function esLetra(c)
{
return esMinuscula(c) || esMayuscula(c);
}
function compruebaAlfa(contenido, error)
{
for(var i = 0; i < contenido.length; i++)
if(!esLetra(contenido.charAt(i)))
{
error.valor = 1;
error.posicion = i + 1;
return false;
}
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
return true;
return true;
229
230
Captulo 9. JavaScript
if(!esMayuscula(contenido.charAt(i)))
{
error.valor = 3;
error.posicion = i + 1;
return false;
}
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
return true;
function valida(valor)
{
var correcto;
var contenido = document.formulario.campo.value;
switch(valor)
{
case 1:
correcto = compruebaAlfa(contenido, error);
break;
86
case 2:
correcto = compruebaAlfaMin(contenido, error);
break;
87
88
89
90
case 3:
correcto = compruebaAlfaMay(contenido, error);
break;
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
default:
break;
if(correcto)
alert("El campo es vlido");
else
alert("El campo no es vlido: " + errores[error.valor] +
" en la posicin " + error.posicion);
}
</SCRIPT>
<BODY>
<FORM NAME="formulario">
<B><CENTER>Validacin alfabtica de un campo</CENTER></B>
<BR>
Campo: <INPUT TYPE="TEXT" NAME="campo">
<INPUT TYPE="BUTTON" VALUE="Palabra" ONCLICK="valida(1)">
9.8.
112
113
114
115
116
Validacin de formularios
231
9.8.3.
Validacin numrica
compruebaReal
un nmero real
compruebaNatural, compruebaEntero
visualizada en un navegador.
Ejemplo 9.75
1
2
<HTML>
<HEAD>
5 Se
232
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Captulo 9. JavaScript
9.8.
49
50
51
52
53
54
55
56
57
58
59
60
61
if(!numero(contenido.charAt(0)) &&
!signo(contenido.charAt(0)))
{
error.valor = 3;
error.posicion = 1;
return false;
}
63
64
65
66
67
68
69
70
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
return true;
62
71
Validacin de formularios
return true;
233
234
95
96
97
98
99
100
}
function compruebaReal(contenido, error)
{
var aux = compruebaEntero(contenido, error);
var posicion = error.posicion - 1;
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Captulo 9. JavaScript
return aux;
function valida(valor)
{
var correcto;
var contenido = document.formulario.campo.value;
switch(valor)
{
case 1:
correcto = compruebaNatural(contenido, error);
break;
128
case 2:
correcto = compruebaEntero(contenido, error);
break;
129
130
131
132
case 3:
correcto = compruebaReal(contenido, error);
break;
133
134
135
136
137
138
139
140
default:
break;
9.8.
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Validacin de formularios
235
if(correcto)
alert("El campo es vlido");
else
alert("El campo no es vlido: " + errores[error.valor] +
" en la posicin " + error.posicion);
}
</SCRIPT>
<BODY>
<FORM NAME="formulario">
<B><CENTER>Validacin numrica de un campo</CENTER></B>
<BR>
Campo: <INPUT TYPE="TEXT" NAME="campo">
<INPUT TYPE="BUTTON" VALUE="Natural" ONCLICK="valida(1)">
<INPUT TYPE="BUTTON" VALUE="Entero" ONCLICK="valida(2)">
<INPUT TYPE="BUTTON" VALUE="Real" ONCLICK="valida(3)">
</FORM>
</BODY>
</HTML>
9.8.4.
236
Captulo 9. JavaScript
dgitos que representan el mes (1 o 2) y aaaa son los dgitos que representan el ao
(de 1 a 4). En la Figura 9.9 se puede ver como se muestra la pgina en un navegador.
La funcin
Date
de JavaScript :
Date
la convierte en
Ejemplo 9.76
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<HTML>
<HEAD>
<TITLE>Validacin de una fecha</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function compruebaFecha(fecha)
{
// Comprueba el formato de la fecha
// Dia
i1 = fecha.indexOf("/");
if(i1 == -1)
{
alert("Formato de fecha incorrecto");
return;
}
dia = fecha.substring(0, i1);
// Mes
i2 = fecha.indexOf("/", i1 + 1)
if(i2 == -1)
{
alert("Formato de fecha incorrecto");
return;
}
mes = fecha.substring(i1 + 1, i2)
// Anyo
anyo = fecha.substring(i2 + 1, fecha.length);
9.8.
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Validacin de formularios
237
}
</SCRIPT>
<BODY>
<FORM NAME="formulario">
<B><CENTER>Validacin de una fecha</CENTER></B>
<BR>
Fecha: <INPUT TYPE="TEXT" NAME="fecha" MAXLENGTH="10">
<INPUT TYPE="BUTTON" VALUE="Valida" ONCLICK="compruebaFecha(fecha.value)">
</FORM>
</BODY>
</HTML>
238
Captulo 9. JavaScript
Captulo 10
Modelo de Objetos de
Documento
El Modelo de Objetos de Documento es un interfaz que permite acceder y modicar
la estructura y contenido de una pgina web. Especica como se puede acceder a los
distintos elementos (enlaces, imgenes, formularios, etc.) de una pgina y como se pueden
modicar. En este captulo vamos a describir los objetos que componen este modelo, sus
propiedades, mtodos y eventos.
ndice General
242
. . . . . .
248
. . . . . . . . . . . . . . . . . . . . . . . .
255
256
257
259
262
10.1. Introduccin
El Modelo de Objetos de Documento
de script : se piensa que forma parte de ellos, cuando en realidad son independientes
239
240
Captulo 10.
HTML de un documento
desde los lenguajes de script. Para lograrlo, se crean una serie de objetos que representan (exponen) dichos elementos. Estos objetos guardan entre ellos unas relaciones de
parentesco (se establece una jerarqua) que reeja la estructura lgica de una pgina
HTML:
a su vez puede tener una serie de formularios, que pueden contener elementos como
botones, cuadros de texto, etc., los cuales tienen a su vez una serie de propiedades,
etc.
Un problema que presenta el modelo de objetos es que se suele modicar de una
versin de navegador a otra, aadindose nuevos objetos y modicndose la jerarqua
existente entre ellos.
Adems, al igual que ocurre con los lenguajes de script, cada navegador posee su
propio modelo de objetos, que coinciden entre ellos en algunos objetos, propiedades
y mtodos. Existe un intento de estandarizacin por parte de
W3C
del modelo de
objetos de documento.
el documento
HTML que se est mostrando. Estos objetos poseen una jerarqua que
HTML. En la Figura 10.1 vemos los principales ob-
llamado
como
document:
history:
1 Cuando
241
242
Captulo 10.
location:
navigator:
URL actual.
vegador que se est usando, propiedades para los tipos Multipurpose Internet
Mail Extensions (
MIME)
instalados en el cliente.
window:
window.
</FORM>)
form
<FORM> ...
en la jerarqua de
objetos.
10.2.1.
Objeto document
Posee informacin sobre el documento actual y posee mtodos que permiten mostrar una salida en formato
etiqueta
Propiedades
alinkColor Atributo ALINK de la etiqueta BODY.
anchors
Array que contiene una entrada para cada ancla del documento.
applets
bgColor
classes
HTML.
cookie
Atributo
BGCOLOR
de la etiqueta
BODY.
Crea un objeto Style que se usa para especicar el estilo de las etiquetas
domain
embeds
Array que contiene una entrada por cada plug-in del documento.
fgColor
Atributo
TEXT
de la etiqueta
BODY.
formName
forms
height
ids
images
layers
HTML.
Array que contiene una entrada para cada imagen del documento.
lastModied
linkColor
links
243
Atributo
LINK
de la etiqueta
BODY.
plugins
referrer
Especica la
tags
Crea un objeto Style que permite especicar los estilos de las etiquetas
title
Contenido de la etiqueta
TITLE
de la seccin
HTML.
HEAD.
Atributo
VLINK
de la etiqueta
BODY.
Mtodos
captureEvents
Establece que el documento capture todos los eventos del tipo es-
pecicado.
close
244
Captulo 10.
contextual
HTML.
getSelection
handleEvent
open
releaseEvents
write
writeln.
cado.
routeEvent
write
writeln
HTML en el documento.
salto de lnea.
Eventos
onClick
onDblClick
onKeyDown
onKeyPress
onKeyUp
onMouseDown
onMouseUp
245
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<HTML>
<HEAD>
<TITLE>Ejemplo de uso del objeto document</TITLE>
</HEAD>
<BODY>
<A HREF="pag1.html">Enlace a la pagina 5</A>
<BR>
<A HREF="pag2.html">Enlace a la pagina 2</A>
<BR>
<A HREF="pag3.html">Enlace a la pagina 3</A>
<BR><BR>
<SCRIPT LANGUAGE="JavaScript">
document.write("Hay " + document.links.length + " enlaces<BR>\n");
for(i = 0; i < document.links.length; i++)
{
document.write(document.links[i]);
document.write("<BR>\n");
}
</SCRIPT>
</BODY>
</HTML>
El siguiente ejemplo muestra el valor de los atributos BGCOLOR, TEXT, LINK, ALINK
VLINK. Adems, tambin aparece la fecha de la ltima modicacin (lastModified).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<HTML>
<HEAD>
<TITLE>Ejemplo de uso del objeto document</TITLE>
</HEAD>
<BODY BGCOLOR="WHITE" TEXT="BLACK" LINK="NAVY"
ALINK="BLUE" VLINK="RED">
<SCRIPT LANGUAGE="JavaScript">
document.write("BGCOLOR = " + document.bgColor + "<BR>\n");
document.write("TEXT = " + document.fgColor + "<BR>\n");
document.write("LINK = " + document.linkColor + "<BR>\n");
document.write("ALINK = " + document.alinkColor + "<BR>\n");
document.write("VLINK = " + document.vlinkColor + "<BR>\n");
document.write("<BR>\n");
document.write("lastModified = " + document.lastModified + "<BR>\n");
246
15
16
17
Captulo 10.
</SCRIPT>
</BODY>
</HTML>
En el ejemplo anterior, la fecha de la ltima modicacin (lastModied) se muestra con formato un formato ingls. El siguiente ejemplo muestra como transformar
cualquier fecha a un formato espaol. En la Figura 10.3 vemos como se muestra esta
pgina en un navegador.
Ejemplo 10.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function nombreDia(dia)
{
var d;
switch(dia)
{
case 0:
d = "Domingo";
break;
case 1:
d = "Lunes";
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
break;
case 2:
d = "Martes";
break;
case 3:
d = "Mircoles";
break;
case 4:
d = "Jueves";
break;
case 5:
d = "Viernes";
break;
case 6:
d = "Sbado";
break;
return d;
function nombreMes(mes)
{
var m;
switch(mes)
{
case 0:
m = "Enero";
break;
case 1:
m = "Febrero";
break;
case 2:
m = "Marzo";
break;
case 3:
m = "bril";
break;
case 4:
m = "Mayo";
break;
case 5:
m = "Junio";
break;
case 6:
247
248
Captulo 10.
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
78
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
m = "Julio";
break;
case 7:
m = "Agosto";
break;
case 8:
m = "Septiembre";
break;
return m;
function formatoFecha(fecha)
{
77
79
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
var ultima = document.lastModified;
var fecha = new Date(ultima);
document.write("ltima fecha de modificacin: " + ultima);
document.write("<BR><BR>");
document.write("ltima fecha de modificacin: " + formatoFecha(fecha));
</SCRIPT>
</BODY>
</HTML>
10.2.2.
Un documento (document) puede poseer varios formularios, cada uno con sus
correspondientes controles. Para acceder a los controles de un formulario se tiene
que recorrer la jerarqua que se puede ver en la Figura 10.1: objeto
window2 ,
objeto
document, nombre del formulario3 , nombre del control y propiedad del control.
2 Recordemos que se puede obviar.
3 Tambin se puede acceder a travs
mulario.
de
forms,
249
1
2
3
<FORM NAME="miForm">
Nombre: <INPUT TYPE="TEXT" NAME="nombre">
</FORM>
para acceder al valor (propiedad
value)
nombre
document.miForm.nombre.value
Hay que prestar mucha atencin a las maysculas y minsculas, ya que como se
blur()
Campos de vericacin
Los campos de vericacin poseen las siguiente propiedades:
250
Captulo 10.
checked
defaultChecked
do.
value
Por ejemplo, el siguiente cdigo muestra en una ventana el estado de los campos
de vericacin de un formulario (si estn o no estn activados). Adems, cuando un
campo est activado, muestra tambin el valor asociado al campo de vericacin. En
la Figura 10.4 se puede observar como se visualiza esta pgina en un navegador.
Ejemplo 10.6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<HTML>
<HEAD>
<TITLE>Ejemplo de uso del objeto document</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function valida()
{
var df = document.miForm;
if(df.ingles.checked)
alert("Ingls: S" + "\n" +
"Valor: " + df.ingles.value);
else
alert("Ingls: NO");
if(df.aleman.checked)
alert("Alemn: S" + "\n" +
"Valor: " + df.aleman.value);
else
alert("Alemn: NO");
if(df.frances.checked)
alert("Francs: S" + "\n" +
"Valor: " + df.frances.value);
else
alert("Francs: NO");
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="miForm">
Idiomas:
<BR><BR>
Ingls <INPUT TYPE="CHECKBOX" NAME="ingles" VALUE="ing" CHECKED>
Alemn <INPUT TYPE="CHECKBOX" NAME="aleman" VALUE="ale">
33
34
35
36
37
38
251
Campos excluyentes
Posee las mismas propiedades que los campos de vericacin:
checked
defaultChecked
do.
value
se enva.
Por ejemplo, el siguiente cdigo muestra en una ventana el valor del campo excluyente seleccionado. En la Figura 10.5 se puede observar como se visualiza esta pgina
en un navegador.
252
Captulo 10.
Ejemplo 10.7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<HTML>
<HEAD>
<TITLE>Ejemplo de uso del objeto document</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function valida()
{
var df = document.miForm;
for(var i = 0; i < df.contrato.length; i++)
{
if(df.contrato[i].checked)
alert("Valor seleccionado: " + df.contrato[i].value);
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="miForm">
Tipo de contrato:
<BR><BR>
Alquiler <INPUT TYPE="RADIO" NAME="contrato" VALUE="1" CHECKED>
Prueba <INPUT TYPE="RADIO" NAME="contrato" VALUE="2">
Venta <INPUT TYPE="RADIO" NAME="contrato" VALUE="3">
<BR><BR>
<INPUT TYPE="BUTTON" VALUE="Comprobar" ONCLICK="valida()">
</FORM>
</BODY>
</HTML>
defaultValue
value
enva.
value.
253
Listas de seleccin
Las listas de seleccin poseen las siguientes propiedades:
length
options
option)
de la
lista.
selectedIndex
selected
text
value
option:
est seleccionada.
El siguiente ejemplo muestra como acceder a una lista de seleccin normal y a una
lista de seleccin mltiple. En la Figura 10.6 se puede observar como se visualiza esta
pgina en un navegador.
254
Captulo 10.
Ejemplo 10.8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<HTML>
<HEAD>
<TITLE>Ejemplo de uso del objeto document</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function valida()
{
var df = document.miForm;
var sel, i;
// Para un campo sin seleccin mltiple
sel = df.provincias.selectedIndex;
alert("Nmero de opciones: " + df.length + "\n" +
"Seleccionado: " + sel + "\n" +
"Texto: " +
df.provincias.options[sel].text + "\n" +
"Valor: " +
df.provincias.options[sel].value);
// Para un campo con seleccin mltiple
for(i = 0; i < df.paises.length; i++)
{
if(df.paises.options[i].selected)
alert("Seleccionado: " + i + "\n" +
"Texto: " +
df.paises.options[i].text + "\n" +
"Valor: " +
df.paises.options[i].value);
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="miForm">
Provincias:
<BR><BR>
<SELECT NAME="provincias">
<OPTION VALUE="Alc">Alicante</OPTION>
<OPTION VALUE="Cas">Castelln</OPTION>
<OPTION VALUE="Val">Valencia</OPTION>
</SELECT>
<BR><BR>
Pases:
<BR><BR>
<SELECT NAME="paises" MULTIPLE>
<OPTION VALUE="1">Espaa</OPTION>
46
47
48
49
50
51
52
53
255
<OPTION VALUE="2">Francia</OPTION>
<OPTION VALUE="3">Portugal</OPTION>
</SELECT>
<BR><BR>
<INPUT TYPE="BUTTON" VALUE="Comprobar" ONCLICK="valida()">
</FORM>
</BODY>
</HTML>
10.2.3.
Objeto history
Contiene un array que almacena las URLs que el usuario ha visitado en la ventana
actual. Mediante los mtodos que posee este objeto se puede navegar hacia adelante
o hacia atrs en el historial.
Propiedades
current Especica la URL actual del historial.
length
256
Captulo 10.
next
Especica la
previous
Especica la
Mtodos
back
Carga la
forward
go
Carga la siguiente
Carga la
10.2.4.
Objeto location
Representa la
URL
location
de un objeto
window.
window.
protocol://host:port/pathname#hash?search
Propiedades
hash
host
hostname
href
Especica la
pathname
port
Especica la parte
host:port
URL.
de la
URL.
URL.
URL entera.
Especica la ruta de la
URL.
protocol
Especica el protocolo de la
URL.
search
257
URL.
Mtodos
reload Recarga el documento actual de la ventana.
replace
Carga la
cin.
location.
En la
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<HTML>
<HEAD>
<TILLE>Ejemplo de uso del objeto location</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
document.writeln("location.hash = " + location.hash + "<BR>");
document.writeln("location.host = " + location.host + "<BR>");
document.writeln("location.hostname = " + location.hostname + "<BR>");
document.writeln("location.href = " + location.href + "<BR>");
document.writeln("location.pathname = " + location.pathname + "<BR>");
document.writeln("location.port = " + location.port + "<BR>");
document.writeln("location.protocol = " + location.protocol + "<BR>");
document.writeln("location.search = " + location.search + "<BR>");
</SCRIPT>
</BODY>
</HTML>
10.2.5.
Objeto navigator
Contiene informacin sobre la versin del navegador que se est empleando. Todas
las propiedades de este objeto son de solo lectura.
Propiedades
appCodeName
appName
258
Captulo 10.
appVersion
language
mimeTypes
platform
plugins
userAgent
Especica la cabecera
HTTP user-agent.
Mtodos
javaEnabled
plugins.refresh
preference
savePreferences
259
prefs.js
(chero de
taintEnabled
navigator.
En la
Figura 10.8 se puede ver como se muestra esta pgina en Netscape Communicator 4.78
y en la Figura 10.9 se visualiza la misma pgina en Microsoft Internet Explorer 6.0.
Ejemplo 10.11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<HTML>
<HEAD>
<TITLE>Ejemplo de uso del objeto navigator</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
document.writeln("navigator.appCodeName = " + navigator.appCodeName);
document.writeln("<BR>");
document.writeln("navigator.appName = " + navigator.appName);
document.writeln("<BR>");
document.writeln("navigator.appVersion = " + navigator.appVersion);
document.writeln("<BR>");
document.writeln("navigator.language = " + navigator.language);
document.writeln("<BR>");
document.writeln("navigator.mimeTypes = " + navigator.mimeTypes);
document.writeln("<BR>");
document.writeln("navigator.platform = " + navigator.platform);
document.writeln("<BR>");
document.writeln("navigator.plugins = " + navigator.plugins);
document.writeln("<BR>");
document.writeln("navigator.userAgent = " + navigator.userAgent);
document.writeln("<BR>");
</SCRIPT>
</BODY>
</HTML>
10.2.6.
Objeto screen
Este objeto contiene una serie de propiedades que describen las caractersticas
fsicas de la pantalla: resolucin y colores.
260
Captulo 10.
Propiedades
availHeight
261
availLeft
Coordenada x del primer pixel que no est reservado por el sistema ope-
availTop
Coordenada y del primer pixel que no est reservado por el sistema ope-
availWidth
colorDepth
height
Altura de la pantalla.
pixelDepth
width
screen.pixelDepth.
Anchura de la pantalla.
screen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<HTML>
<HEAD>
<TITLE>Ejemplo de uso del objeto screen</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
document.write("availHeight: " + screen.availHeight + "<BR>");
document.write("availLeft: " + screen.availLeft + "<BR>");
document.write("availTop: " + screen.availTop + "<BR>");
document.write("availWidth: " + screen.availWidth + "<BR>");
document.write("colorDepth: " + screen.colorDepth + "<BR>");
document.write("height: " + screen.height + "<BR>");
document.write("pixelDepth: " + screen.pixelDepth + "<BR>");
document.write("width: " + screen.width + "<BR>");
</SCRIPT>
En la Figu-
262
16
17
Captulo 10.
</BODY>
</HTML>
10.2.7.
Objeto window
... </BODY>
window
<BODY>
window
Propiedades
closed Especica si una ventana ha sido cerrada.
crypto
defaultStatus
document
HTML al usuario.
263
frames
Array que permite acceder a los marcos que posee una ventana.
history
ventana.
innerHeight
innerWidth
length
location
Informacin sobre la
locationbar
menubar
name
URL actual.
oscreenBuering
buer.
opener
open.
outerHeight
outerWidth
pageXOset
ventana.
pageYOset
ventana.
parent
personalbar
screenX
264
Captulo 10.
screenY
scrollbars
self
status
statusbar
toolbar
top
window
Mtodos
alert Muestra un cuadro de dilogo de alerta con un mensaje y un botn OK.
atob
cacin base-64.
back
blur
btoa
captureEvents
clearInterval
clearTimeout
setInterval.
todo
setTimeout.
close
Cierra la ventana.
265
de bytes especicados.
crypto.signText
un objeto rmado.
disableExternalCapture
mtodo
enableExternalCapture.
enableExternalCapture
nd
focus
forward
Carga la siguiente
handleEvent
home
Navega a la
URL
moveBy
moveTo
pantalla indicada.
open
prompt
campo de entrada.
releaseEvents
del tipo indicado, enviando el evento a los siguientes objetos en la jerarqua de eventos.
266
Captulo 10.
resizeBy
indicada.
resizeTo
routeEvent
scroll
scrollBy
scrollTo
setHotKeys
setInterval
Activa o desactiva las hot keys en una ventana que no posee men.
Evala una expresin o llama a una funcin cada vez que transcurre el
setResizable
setTimeout
Evala una expresin o llama a una funcin una vez que ha transcurri-
setZOptions
stop
Eventos
onBlur
onDragDrop
navegador.
onError
error.
onFocus
onLoad
267
onMove
onResize
onUnload
open.
Figura 10.11: Interaccin entre varias ventanas a travs del objeto window
Ejemplo 10.13
1
2
<HTML>
<HEAD>
268
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Captulo 10.
window
setTimeout
del
Figura 10.12 se muestra esta pgina en un navegador; para comprobar que la pgina
se refresca cada 5 segundos, se muestra la hora actual (expresada como el nmero de
milisegundos desde el 1 de enero de 1970 a las 0 horas).
Ejemplo 10.14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<HTML>
<HEAD>
<TITLE>Ejemplo de uso del objeto window</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function refrescar()
{
location.href = self.location.href;
}
</SCRIPT>
</HEAD>
<BODY ONLOAD="window.setTimeout('refrescar()', 5000)">
Esta pgina se refresca cada 5 segundos
<BR><BR>
<SCRIPT LANGUAGE="JavaScript">
var d;
d = new Date();
document.write("Hora: " + d.getTime());
</SCRIPT>
</BODY>
</HTML>
269
270
Captulo 10.
Apndice A
ndice General
A.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . .
A.2. Etiquetas que denen la estructura del documento
A.3. Etiquetas que pueden ir en la cabecera . . . . . . .
A.4. Etiquetas que denen bloques de texto . . . . . . .
A.5. Etiquetas de listas . . . . . . . . . . . . . . . . . . . .
A.6. Etiquetas de caractersticas del texto . . . . . . . .
A.7. Etiquetas de anclas y enlaces . . . . . . . . . . . . .
A.8. Etiquetas de imgenes y mapas de imgenes . . . .
A.9. Etiquetas de tablas . . . . . . . . . . . . . . . . . . .
A.10.Etiquetas de formularios . . . . . . . . . . . . . . . .
A.11.Etiquetas de marcos . . . . . . . . . . . . . . . . . . .
A.12.Etiquetas de situacin de contenidos . . . . . . . . .
A.13.Etiquetas de script . . . . . . . . . . . . . . . . . . . .
A.14.Etiquetas de applets y plug-ins . . . . . . . . . . . .
A.15.Etiquetas de ajuste del texto . . . . . . . . . . . . .
A.16.Atributos universales . . . . . . . . . . . . . . . . . .
271
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
272
273
273
274
275
275
276
277
278
279
282
283
284
285
286
287
272
A.1. Introduccin
Este resumen contiene todas las etiquetas
tor 4.0 y posteriores. Este resumen slo contiene la sintaxis de las etiquetas. Conforme
evoluciona
una serie de posibles valores, estos se han separado con una barra vertical, como por
ejemplo
ningn
<HEAD>.
A.2.
273
HTML.
Etiqueta ms externa:
Atributos:
BACKGROUND="URL".
BGCOLOR="color".
TEXT="color".
LINK="color".
ALINK="color".
VLINK="color".
ONLOAD="cdigoScript".
ONUNLOAD="cdigoScript".
ONBLUR="cdigoScript".
ONFOCUS="cdigoScript".
<HEAD>
</HEAD>.
<BASE>.
Atributos:
HREF="URL".
TARGET="nombreVentana".
Informacin metadocumental:
<META>.
NAME="nombre".
HTTP-EQUIV="nombreCampo".
CONTENT="valor".
Atributos:
274
Denicin de estilo:
Atributo:
TYPE="tipoEstilo".
Enlace a cheros externos:
<LINK>.
Atributos:
REL="tipoFichero".
TYPE="tipo".
SRC="URL".
1
<ISINDEX>.
Elemento de bsqueda :
Atributo:
PROMPT="texto".
2
Atributos:
LANGUAGE="nombreLenguajeScript".
SRC="URL".
Atributo:
Atributo:
Atributos:
COLS="columnas".
WRAP.
Secuencia literal de caracteres (desactiva intrprete):
no gura el valor
JUSTIFY.
A.5.
Etiquetas de listas
275
Lista de denicin:
Atributo:
COMPACT.
Trmino de denicin:
Descripcin de denicin:
Atributos:
START="valor".
TYPE="A" | "a" | "I" | "i" | "1".
Lista no ordenada:
Atributo:
Atributos:
SIZE="nmero".
Tamao de letra mayor:
Parpadeante:
276
Cita:
Cdigo:
Enfatizado:
Atributos:
COLOR="color".
FACE="listaTiposDeLetra".
POINT-SIZE="tamaoPunto".
SIZE="nmero".
WEIGHT="gradoNegrita".
Cursiva:
Texto de teclado:
Subndice:
Superndice:
Mecanograado:
Subrayado:
Variable:
nfasis fuerte:
<PLAINTEXT>.
las anclas (lugares a donde se puede crear un enlace) como los enlaces.
Ancla:
Atributo:
NAME="nombreAncla".
Enlace:
Atributos:
A.8.
277
HREF="URL".
ONCLICK="cdigoScript".
ONMOUSEOUT="cdigoScript".
ONMOUSEOVER="cdigoScript".
TARGET="_blank" | "_parent" | "_self" | "_top" | "nombreVentana".
sensibles).
Imagen:
<IMG>.
Atributos:
SRC="URL".
LOWSRC="URL".
ALT="textoAlternativo".
ALIGN="LEFT" | "RIGHT" | "TOP" | "ABSMIDDLE" | "ABSBOTTOM" |
"TEXTTOP" | "MIDDLE" | "BASELINE" | "BOTTOM".
BORDER="anchuraBorde".
HEIGHT="altura".
WIDTH="anchura".
HSPACE="margenHorizontal".
VSPACE="margenVertical".
ISMAP.
USEMAP="#nombreMapa".
NAME="nombreImagen".
ONABORT="cdigoScript".
ONERROR="cdigoScript".
ONLOAD="cdigoScript".
SUPPRESS="TRUE" | "FALSE".
rea de un mapa de imagen:
<AREA>.
COORDS="coordenadas".
Atributos:
278
Atributo:
NAME="nombreMapa".
Atributos:
Atributo:
ALIGN="BOTTOM" | "TOP".
Fila de la tabla:
Atributos:
Atributos:
A.10.
Etiquetas de formularios
279
Atributos:
Atributos:
NAME="nombreFormulario".
ACTION="URL".
ENCTYPE="tipoCodificacin".
METHOD="GET" | "POST".
TARGET="nombreVentana".
ONRESET="cdigoScript".
ONSUBMIT="cdigoScript".
Botn:
<INPUT TYPE="BUTTON">.
NAME="nombreBotn".
Atributos:
280
VALUE="etiqueta".
ONCLICK="cdigoScript".
Casilla de vericacin:
<INPUT TYPE="CHECKBOX">.
Atributos:
NAME="nombre".
VALUE="valor".
CHECKED.
ONCLICK="cdigoScript".
Envo de chero:
<INPUT TYPE="FILE">.
Atributos:
NAME="nombre".
VALUE="nombreFichero".
Elemento oculto:
<INPUT TYPE="HIDDEN">.
Atributos:
NAME="nombre".
VALUE="valor".
Imagen como botn:
<INPUT TYPE="IMAGE">.
Atributos:
NAME="nombre".
ALIGN="LEFT" | "RIGHT" | "TOP" | "ABSMIDDLE" | "ABSBOTTOM" |
"TEXTTOP" | "MIDDLE" | "BASELINE" | "BOTTOM".
SRC="URL".
Contrasea:
<INPUT TYPE="PASSWORD">.
Atributos:
NAME="nombre".
VALUE="texto".
MAXLENGTH="mximoNmeroCaracteres".
SIZE="longitudCampo".
ONSELECT="cdigoScript".
Botn de radio:
<INPUT TYPE="RADIO">.
NAME="nombre".
VALUE="valor".
CHECKED.
ONCLICK="cdigoScript".
Atributos:
A.10.
Etiquetas de formularios
Restaurar (borrar):
281
<INPUT TYPE="RESET">.
Atributos:
NAME="nombre".
VALUE="etiqueta".
ONCLICK="cdigoScript".
Botn de envo:
<INPUT TYPE="SUBMIT">.
Atributos:
NAME="nombre".
VALUE="etiqueta".
<INPUT TYPE="TEXT">.
Lnea de texto:
Atributos:
NAME="nombre".
VALUE="texto".
MAXLENGTH="mximoNmeroCaracteres".
SIZE="longitudCampo".
ONBLUR="cdigoScript".
ONCHANGE="cdigoScript".
ONFOCUS="cdigoScript".
ONSELECT="cdigoScript".
Lista de seleccin:
Atributos:
NAME="nombre".
MULTIPLE.
SIZE="longitudCampo".
ONBLUR="cdigoScript".
ONCHANGE="cdigoScript".
ONCLICK="cdigoScript".
ONFOCUS="cdigoScript".
Opcin en una lista de seleccin:
VALUE="valor".
SELECTED.
rea de texto:
NAME="nombre".
COLS="columnas".
Atributos:
Atributos:
282
ROWS="filas".
WRAP="OFF" | "HARD" | "SOFT".
ONBLUR="cdigoScript".
ONCHANGE="cdigoScript".
ONFOCUS="cdigoScript".
ONSELECT="cdigoScript".
Generador de clave:
<KEYGEN>.
Atributos:
NAME="nombre".
CHALLENGE="desafo".
4
Elemento de bsqueda :
<ISINDEX>.
Atributo:
PROMPT="texto".
<FRAME>.
Atributos:
BORDERCOLOR="color".
FRAMEBORDER="YES" | "NO".
MARGINHEIGHT="alturaMargen".
MARGINWIDTH="anchuraMargen".
NAME="nombreMarco".
NORESIZE.
SCROLLING="YES" | "NO" | "AUTO".
SRC="URL".
Conjunto de marcos:
COLS="listaAnchurasColumnas".
ROWS="listaAlturasFilas".
BORDER="anchura".
4 Tambin
Atributos:
A.12.
283
BORDERCOLOR="color".
FRAMEBORDER="YES" | "NO".
ONBLUR="cdigoScript".
ONFOCUS="cdigoScript".
ONLOAD="cdigoScript".
ONUNLOAD="cdigoScript".
Texto alternativo a los marcos:
ID="nombreCapa".
LEFT="posicin".
TOP="posicin".
PAGEX="pginaX".
PAGEY="pginaY".
SRC="URL".
Z-INDEX="nmero".
ABOVE="nombreCapa".
BELOW="nombreCapa".
WIDTH="anchura".
HEIGHT="altura".
CLIP="nmero,nmero,nmero,nmero".
VISIBILITY="visibilidad".
BGCOLOR="color".
BACKGROUND="URL".
ONBLUR="cdigoScript".
ONFOCUS="cdigoScript".
ONLOAD="cdigoScript".
ONMOUSEOVER="cdigoScript".
Atributos:
DHTML.
284
ONMOUSEOUT="cdigoScript".
Capa posicionada de forma relativa:
Atributos:
ID="nombreCapa".
LEFT="posicin".
TOP="posicin".
PAGEX="pginaX".
PAGEY="pginaY".
SRC="URL".
Z-INDEX="nmero".
ABOVE="nombreCapa".
BELOW="nombreCapa".
WIDTH="anchura".
HEIGHT="altura".
CLIP="nmero,nmero,nmero,nmero".
VISIBILITY="visibilidad".
BGCOLOR="color".
BACKGROUND="URL".
ONBLUR="cdigoScript".
ONFOCUS="cdigoScript".
ONLOAD="cdigoScript".
ONMOUSEOVER="cdigoScript".
ONMOUSEOUT="cdigoScript".
HTML.
Atributos:
LANGUAGE="nombreLenguajeScript".
SRC="localizacionURL".
Texto alternativo al cdigo JavaScript :
Cdigo en el servidor:
5 Tambin
A.14.
285
Applet
Java:
Atributos:
NAME="nombre".
CODE="nombreFicheroClass".
CODEBASE="directorioFicheroClass".
ARCHIVE="archivo".
ALT="textoAlternativo".
ALIGN="LEFT" | "RIGHT" | "TOP" | "ABSMIDDLE" | "ABSBOTTOM" |
"TEXTTOP" | "MIDDLE" | "BASELINE" | "BOTTOM".
HEIGHT="altura".
WIDTH="anchura".
HSPACE="margenHorizontal".
VSPACE="margenVertical".
MAYSCRIPT.
Parmetro para un applet :
<PARAM>.
Atributos:
NAME="nombre".
VALUE="valor".
Plug-in incrustado:
Atributos:
NAME="nombre".
SRC="URL".
TYPE="tipoMIME".
PLUGINSPAGE="URLinstrucciones".
PLUGINURL="URLplugin".
ALIGN="LEFT" | "RIGHT" | "TOP" | "BOTTOM".
BORDER="anchura".
FRAMEBORDER="YES" | "NO".
HEIGHT="altura".
WIDTH="anchura".
UNITS="unidades".
286
HIDDEN="TRUE" | "FALSE".
HSPACE="margenHorizontal".
VSPACE="margenVertical".
PALETTE="FOREGROUND" | "BACKGROUND".
Texto alternativo para objetos incrustados:
Objeto incrustado:
<OBJECT>.
Atributos:
CLASSID="ficheroClase".
DATA="URL".
CODEBASE="directorioFicheroClase".
TYPE="tipoMIME".
ALIGN="LEFT" | "RIGHT" | "TOP" | "ABSMIDDLE" | "ABSBOTTOM" |
"TEXTTOP" | "MIDDLE" | "BASELINE" | "BOTTOM".
HEIGHT="altura".
WIDTH="anchura".
ID="nombre".
<BR>.
Atributo:
Lnea horizontal:
<HR>.
Atributos:
COLS="nmeroColumnas".
GUTTER="separacinColumnas".
Atributos:
A.16.
Atributos universales
287
WIDTH="anchuraColumnas".
No salto de lnea:
Espacio extra:
<SPACER>.
Atributos:
<WBR>.
CLASS="claseEstilo".
LANG="ISO".
STYLE="estilo".
ID="nombreLugarOEstilo".
Apndice B
Colores en HTML
El lenguaje HTML posee varias etiquetas con atributos que indican un color. Por
ejemplo, la etiqueta <BODY> tiene el atributo BGCOLOR que permite indicar el color
de fondo de una pgina y la etiqueta <FONT> posee el atributo COLOR para cambiar
el color del texto. En este apndice se explica cmo trabajar con los colores en HTML.
Adems, tambin se incluyen una serie de consejos sobre el uso de los colores en las
pginas web.
ndice General
290
290
cin de los tres colores bsicos (primarios) rojo, verde y azul. Cada componente expresa la intensidad del color bsico en la combinacin. As, por ejemplo, el color negro es
el resultado de combinar los tres colores bsicos con una intensidad nula (0), mientras
que el blanco es el resultado de combinar los tres colores con una intensidad mxima
(255 cada componente). Este sistema de codicacin de los colores permite 16 777 216
colores (256 x 256 x 256 combinaciones posibles).
289
290
RGB de decimal
B.1.1.
HTML.
Microsoft Paint , que viene con los sistemas operativos de Microsoft y que se puede
encontrar a travs de
men
Colores
la opcin
Figura B.1. Si en
las correspondientes componentes en decimal (los valores de cada casilla varan desde
0 hasta 255). Una vez que se tienen las componentes del color deseado, el siguiente
paso es convertirlas a hexadecimal.
B.1.2.
Para pasar un nmero del sistema decimal al hexadecimal, se tiene que dividir
el nmero entre 16. Si el cociente es mayor que 15, se divide el cociente entre 16 y
as sucesivamente hasta lograr un cociente menor que 16. El nmero en hexadecimal
escrito de izquierda a derecha se compone del ltimo cociente y los sucesivos restos
obtenidos, desde el ltimo hasta el primero, pero si el ltimo cociente o los restos
tienen dos cifras, se tienen que transformar segn las equivalencias del Cuadro B.1.
A
B
C
D
E
F
1 Se
ha elegido este programa porque se encuentra en la mayora de los ordenadores con sistema
operativo Microsoft Windows. Existen programa de dibujo o retoque fotogrco, como Jasc Paint Shop
Pro,
un color.
RGB
de
291
292
241
en decimal equivale a
293
F.
F1
en hexadecimal, ya que el
15,
que
Inicio
Programas
Accesorios.
El programa
Ver.
cin. Para pasar de decimal a hexadecimal, simplemente hay que escribir el nmero
cuando la calculadora se encuentra en el sistema
294
HTML
un nombre en ingls. La lista de nombres contiene cientos de colores, por lo que aqu
solo incluimos el Cuadro B.2 con algunos de ellos, junto con su valor en
RGB.
#00FFFF
#000000
#0000FF
#FF00FF
#808080
#008000
#00FF00
#800000
#000080
#808000
#800080
#FF0000
#C0C0C0
#008080
#FFFF00
#FFFFFF
ALINK
de la etiqueta
ya que
cualquier cambio parcial puede producir una combinacin con poco contraste entre
los colores que se modican y los colores que se emplean por defecto (que cambian de
un navegador a otro o incluso el usuario los puede modicar a su gusto). Por ejemplo,
en la Figura B.4 se puede ver el cuadro de dilogo de Microsoft Internet Explorer 5.5
que permite cambiar los colores de los atributos anteriores y en la Figura B.5 se puede
observar el cuadro de dilogo de Netscape Communicator 4.78 que realiza la misma
funcin.
Incluso si se emplea una imagen como fondo de una pgina, hay que asignar un
valor al atributo
que el texto no se vea correctamente sobre el color de fondo por defecto de la pgina.
295
Figura B.4: Cuadro de dilogo para cambiar colores en Microsoft Internet Explorer
296
La multidimensionalidad del color tambin puede alegrar e informar aquello que los usuarios tienen que afrontar delante de un ordenador, aunque
algunos colores aplicados en las pantallas de ordenador han transformado aquello que deba ser una simple herramienta en algo que parece una
grotesca parodia de un videojuego.
Edward R. Tufte en Envisioning Information, Graphics Press, 1990
Por otro lado, la capacidad humana de distinguir colores tiene un lmite. Los
expertos en color se cree que pueden distinguir aproximadamente un milln de colores,
mientras que la mayora de la gente no llega a los 20.000. Un lmite adecuado para
una pgina web es emplear 20 colores distintos como mximo (sin contar, claro est,
los colores que se emplean en las imgenes o fotografas).
Algunos consejos bsicos sobre el uso de los colores son los siguientes:
297
Un color brillante sobre una gran supercie tambin brillante suele irritar (por
ejemplo, un texto rosa sobre un fondo amarillo). Sin embargo, un color brillante
usado sobre un fondo sin brillo (apagado) destaca y proporciona dinamismo.
Los colores brillantes cercanos entre s causan un mal efecto.
Los colores de fondo deben de ser discretos y suaves, de modo que no distraigan
la atencin del usuario frente a los elementos situados en un primer plano.
Para que el texto sea claramente legible, tiene que existir un gran contraste
entre el color del texto y el color del fondo. La combinacin de mayor contraste
es el texto en negro sobre un fondo blanco, que es la que se emplea normalmente
en los documentos impresos (libros, peridicos, manuales, etc.). Sin embargo,
para evitar la fatiga visual que produce una pantalla completamente blanca, se
puede emplear justo la combinacin contraria: el texto en blanco sobre un fondo
negro .
2 Sin
embargo, las combinaciones de colores claros para el texto sobre fondo oscuro se imprimen
con dicultad.
Apndice C
Depuracin de errores de
JavaScript
Como los lenguajes de script que se emplean en las pginas web son interpretados, la
depuracin de errores es difcil (al no existir la fase de compilacin, no se detectan los errores sintcticos o semnticos). En este apndice se explica como se puede depurar el cdigo
de script en cualquier navegador. Adems, se comentan algunas herramientas especcas
que poseen los navegadores Microsoft Internet Explorer y Netscape Communicator.
ndice General
. . . . . . . . . . . . . . . . . .
302
304
305
. . . . . . . . . . . . . . .
C.1. Introduccin
La depuracin de errores de JavaScript suele estar desactivada en los navegadores, ya que slo es til para aquellos programadores que quieran vericar su cdigo.
Vamos a ver como podemos depurar cdigo JavaScript de forma general en cualquier
299
300
navegador y de forma especca mediante las caractersticas que nos ofrecen Netscape
Communicator y Microsoft Internet Explorer.
La informacin que se muestra puede ser tan detallada como nosotros queramos.
2.
3.
4.
5.
Por ejemplo, si queremos comprobar en un punto del cdigo el valor de una variable, slo hay que incorporar una lnea de cdigo similar a la siguiente:
Ejemplo C.1
(Figura C.1). La consola sustituye a todas las ventanas de alerta: cada vez
C.3.
Netscape Communicator
301
302
2.
Seleccionar en el men
File
3.
Incorporar en el cdigo
URL javascript:.
la opcin
Open Page. . .
y escribir en el campo
Ejemplo C.2
4.
hasta el momento.
El botn
URL del chero que contiene el error, el nmero de lnea y un comentario que
describe el tipo de error. En algunos casos, se incluye tambin una parte de la lnea
que contiene el error y se marca el punto exacto donde se encuentra.
C.3.1.
Para algunos propsitos, el tener que abrir de forma manual la consola JavaScript
puede ser molesto. Por ejemplo, si estamos desarrollando una pgina, el tener que
teclear
javascript: cada vez que hay un error para abrir la consola y ver el mensaje
prefs.js,
nombreUsuario.
C:\Archivos de programa\Netscape\Users\-
Para modicar este chero hay que seguir los siguientes pasos:
1.
Asegurarse de que el navegador no est ejecutndose. El navegador puede sobrescribir los cambios que realicemos si se est ejecutando cuando editemos el
chero de preferencias.
2.
prefs.js.
C.3.
Netscape Communicator
303
304
Ejemplo C.3
1
2
3
4
5
6
7
8
3.
user_pref("javascript.console.open_on_error", true);
Si se quiere que se abra una ventana de alerta cada vez que se produce un
error de JavaScript (como el sistema empleado en las versiones anteriores):
Ejemplo C.5
user_pref("javascript.classic.error_alerts", true);
Nota: aunque este sistema gura en la documentacin de Netscape Communicator, se ha probado en la versin 4.7 y no funciona.
4.
C.3.2.
prefs.js.
javascript typein
en el
que se pueden escribir expresiones de una sola lnea. Se puede emplear este cuadro de
texto para asignar valores a variables, realizar operaciones matemticas o vericar el
resultado devuelto por los operadores de comparacin.
Para evaluar una expresin simplemente hay que escribirla en el cuadro de texto
y pulsar la tecla
Enter (Return).
ejemplo, al evaluar las siguiente expresiones se obtienen los resultados citados en los
comentarios y mostrados en la Figura C.3:
Ejemplo C.6
1
2
alert("Hola a todos");
5-2;
C.3.
3
4
5
Netscape Communicator
Math.sqrt(49);
var a=100; var b=45;
a-b;
305
// Muestra 7
// Crea dos variables
// Muestra 55
C.3.3.
306
C.3.
Netscape Communicator
307
http://developer.netscape.com/software/jsdebug.html.
http://home.netscape.com/eng/Tools/JSDebugger/relnotes/relnotes11.html.
Para poderlo descargar e instalar, es necesario tener activada la opcin SmartUpdate. Se accede a ella a travs del men Edit Preferences Advanced
SmartUpdate y se tiene que activar la casilla Enable SmartUpdate (Figura C.5).
El sistema de descarga e instalacin de este applet es automtico.
308
Mostrar una noticacin sobre cada error de secuencia de comandos en el men Herramientas Opciones de Internet. . . Avanzadas (Figura C.8). A travs de esta opcin se puede activar
Desactivando la opcin
URL
C.4.
309
mensajes suelen ayudar bastante poco a localizar el error, ya que a veces no sealan
el sitio exacto del error.
Si se tiene instalado algn entorno de programacin de Microsoft, como Visual
Basic
Para que funcione el depurador, tiene que estar desactivada la opcin Deshabilitar depuracin de secuencias de comandos en el men Herramientas
Opciones de Internet. . . Avanzadas (Figura C.8).
Cuando se tiene activada la opcin de depurador de secuencias, las ventanas de
alerta cambian a otras que muestran la lnea donde se produce el error, el error
producido y la posibilidad de abrir el depurador de secuencias para depurar el cdigo
de JavaScript (Figura C.9 y Figura C.10).
310
C.4.
311
312
Bibliografa recomendada
A continuacin se incluye una serie de libros recomendados agrupados en cuatro categoras: General, HTML, Diseo web y JavaScript.
General
Eduardo Parra Murga. Diccionario de Internet. Nesis, Madrid, 1996
Jess Bobadilla Sancho. Superutilidades para Webmasters. Osborne McGrawHill, Madrid, 1999
H. M. Deitel, P. J. Deitel, T. R. Nieto. Internet and World Wide Web. How to
HTML
Sergio Ros Aguilar. Lenguajes HTML, Java y CGI. El diseo de pginas Web
Diseo web
Sarah Horton Patrick J. Lynch. Principios de diseo bsicos para la creacin
314
Bibliografa recomendada
JavaScript
Danny Goodman. Programacin en JavaScript. Va@Internet, Anaya Multimedia, Madrid, 1996
Oscar Gonzlez Moreno. Programacin en JavaScript. Guas Prcticas, Anaya
Multimedia, Madrid, 1998
Jos Manuel Alarcn. Programacin en JavaScript (actualizada hasta JavaS-
cript 1.3 y JScript 5). Guas Prcticas, Anaya Multimedia, Madrid, 2000
ndice alfabtico
<EMBED>, 285
<FONT>, 108, 122, 276
<FORM>, 151, 165, 242, 279
., 205, 213
.htm, 97
.html, 97
/* . . . */, 191
//, 191
<ADDRESS>, 274
<APPLET>, 285
<AREA>, 277
<BASE>, 273
<ILAYER>, 284
<BIG>, 275
<BLINK>, 275
273, 287
<BR>, 100, 286
<LAYER>, 283
<CAPTION>, 278
<LINK>, 274
<MAP>, 278
<MENU>, 275
<DFN>, 106
<MULTICOL>, 286
<DIR>, 275
<NOBR>, 287
<DIV>, 274
<NOEMBED>, 286
<NOLAYER>, 284
<NOSCRIPT>, 284
315
316
ndice alfabtico
<OBJECT>, 286
Adobe Golive, 97
vase ARPA
<PLAINTEXT>, 276
API, xxi, 45
Apple Macintosh, 19
<SERVER>, 284
<SMALL>, 276
<SPACER>, 287
285
Application Program Interface, vase
<SPAN>, 287
API
ARPA, xxi, 8, 9
<SUB>, 276
asin, 223
<SUP>, 276
se ADSL
atan, 223
atributo, 98
Autodesk MapGuide, 49
<XMP>, 274
=, 98
, 100
Bobby, 174
Bolt Beranek and Newman, 9, 13
abs, 222
accesibilidad, 172
acos, 223
cdigos pareados, 97
ndice alfabtico
317
Calculadora, 293
DOS, 97
ceil, 223
183, 226
charAt, 217
Claris Home Page, 97
E, 223
ColdFusion, 31, 50
ECMAScript, 187
enlaces, 122
Enquire-Within-Upon-Everything, 17
Erwise, 18
escape, 212
concat, 217
Conseil Europenne pour le Recherche
Nuclaire, vase CERN
consola de JavaScript, 300
eval, 210
exp, 224
Extensible HyperText Markup Language, vase XHTML
continue, 205
controles de un formulario, 151
extranet, 53
cos, 224
CSP, xxii, 58, 59
CSS, xxii, 29, 34, 49, 93
oor, 224
for, 200
for(. . . in . . . ), 205, 213
default, 199
formularios, 150
vase ARPA
fromCharCode, 218
delete, 216
function, 208
FutureWave Software, 34
318
ndice alfabtico
ISAPI, xxiv, 50
hiperenlaces, 122
history, 240, 255
isFinite, 210
isNaN, 211
ISO, xxiv, 187, 212
ISP, xxiv, 52
305
vase ISO
se JPEG
JPEG, xxiv, 19, 140, 143, 145
JPG, vase JPEG
JScript, xxi, 21, 176, 187
JSP, xxiv, 31, 50, 56, 58, 183
Internet, 52
internet, 52
Internet Access Provider, vase ISP
Internet Database Connector, vase IDC
lastIndexOf, 220
Linux, 184
Intersystems, xxii
listas, 115
intranet, 53
ndice alfabtico
319
min, 224
MNG, xxv
LiveScript, 182
LN10, 223
21
LN2, 223
se MNG
Multipurpose Internet Mail Extensions,
vase MIME
LOG2E, 223
LZW, xxv, 141, 145
Macromedia DreamWeaver, 97
Macromedia Shockwave, 49
mailto:, 127
marcos, 160
Massachusetts Institute of Technology,
vase MIT
Math, 222
max, 224
metadatos, 101
Microsoft, xxi, xxiv, 23, 31, 50, 176,
187, 270, 290, 293, 309
Microsoft FrontPage, 97
new, 214
NeXTStep, 17, 22
290
Nexus, 22
NPL, xxv, 7, 8
Midas, 18
Number, 211
320
ndice alfabtico
RPC, xxvi, 45
Objective-C, 22
ODBC, xxv, 45, 58
operadores, 195
orden etiquetas, 99
249
Server-side JavaScript, 182
servlets, 50
SGML, xxvii, 15, 93
sin, 224
parseFloat, 211
SLAC, xxvii, 18
parseInt, 211
slice, 221
split, 222
Spyglass, 21
PI, 223
sqrt, 226
SQRT1_2, 223
SQRT2, 223
SSL, xxvii, 53
pow, 225
random, 225
se SLAC
String, 211
Sun Microsystems, xxiv, 21, 176, 182
switch, 197, 198
tablas, 129
replace, 221
return, 209
tan, 224
Rexx, 175
round, 225
this, 215
ndice alfabtico
321
unescape, 212
X-Windows, 18
Xanadu, 17
Xerox Data Systems, 9
se VRML
Visual Basic, 176, 309
Visual C++, 309
VPN, xxvii, 53
VRML, xxvii, 49
Yahoo, 71