Guia 1
Guia 1
Guía de Laboratorio #1
Nombre de la práctica: Fundamentos de páginas web dinámicas en el cliente
con JavaScript.
Ciclo 02 Lugar de ejecución: Centro de cómputo.
Materia: Desarrollo de Aplicaciones Web con Software
Interpretado en el Cliente
I. OBJETIVOS
Que el estudiante:
1. Adquiera dominio de los elementos sintácticos básicos del lenguaje JavaScript.
2. Domine de las distintas formas de incluir código JavaScript dentro de un documento web.
3. Sea capaz de generar código HTML 5 desde secuencias de comando de JavaScript.
4. Pueda crear páginas web utilizando métodos básicos de interacción con el usuario.
5. Utilice métodos básicos de depuración de scripts utilizando las herramientas del navegador.
Ejemplo:
//Usando métodos tradicionales de incluir JavaScript
<a href="#" onclick="openFullImage()">
<img src="foto.jpg" alt="foto en tamaño normal" />
</a>
</a>
//Capturar el elemento <a href="#"></a> con JavaScript y asignar
//la función que será el manejador de eventos al producirse
//el evento click sobre el enlace
document.links[0].onclick = openFullImage;
--------------------------------------
function openFullImage(){
//Código que mostrará la imagen en mayor resolución
}
Si utiliza el Mozilla Firefox 27.0 o superior la depuración resulta más fácil de realizar utilizando el codemirror que
es la herramienta para desarrolladores (DevTools) que ofrece por defecto el navegador de Mozilla. Para activarla,
se sigue un proceso similar, primero haciendo clic derecho sobre un elemento que no esté funcionando
adecuadamente o que no esté produciendo el resultado esperado y a continuación en el menú desplegable se
da clic sobre la opción Inspeccionar elemento (O).
Esa acción abrirá la consola de las herramientas para desarrollador del Firefox:
Haciendo clic en la opción Consola, podrá observar alguna notificación de error en el código JavaScript. Si aparece
en blanco actualice y de clic en el elemento asociado a la ejecución de código de JavaScript para que le notifique
algún error.
Puede observar que el depurador le muestra el error, su descripción y el número de línea donde está el problema
encontrado.
Si está utilizando Chrome de Google, puede invocar a las herramientas de desarrollador de Chrome (o Chrome
Developer Tools o simplemente DevTools) para depurar código de JavaScript. El funcionamiento es idéntico y al
invocarlo visualizará la siguiente interfaz de usuario donde puede explorar errores de JavaScript siempre en la
opción Consola.
Al hacer clic en la opción Consola (Console) podrá visualizar los errores de JavaScript y las líneas donde se
encuentran dichos errores, con alguna información adicional acerca del error.
En el caso de que utilice el navegador Opera, puede utilizar el Opera Dragonfly, la propuesta de este navegador
para depurar errores de HTML, CSS y JavaScript. El aspecto del Opera Dragonfly es el siguiente:
Igual que con las propuestas de Firefox, Chrome e Internet Explorer se accede a través de los elementos de la
página, haciendo clic derecho sobre ellos o invocando mediante método abreviado del teclado, pulsando las
teclas CTRL+SHIFT+I. Para observar los errores posibles en JavaScript, debe hacer clic sobre la opción Consola
(Console).
Hay que mencionar que en las últimas versiones de Opera, el aspecto del Dragonfly es casi idéntico al de las
herramientas para desarrollador de Chrome. Esto es así, debido a que para la última versión de Opera se ha
utilizado como núcleo el motor Chromiun, mismo que utiliza el navegador Chrome de Google.
Se plantea que investigue ud. cuál es la herramienta para desarrolladores del navegador Safari de las
computadoras MAC.
Donde mensaje es una cadena de texto, por lo tanto, si se introduce directamente el mensaje como un literal de
cadena, debe ingresar el texto entre comillas simples o dobles. Si se utilizan variables declaradas deben ser de
tipo cadena. Además, la cadena puede ser el resultado de la evaluación de una expresión, como por ejemplo,
una concatenación. Cuando pasa un tipo de dato que no es cadena JavaScript lo convertirá en cadena.
O en forma resumida
confirm(mensaje);
El método prompt() tiene dos argumentos. El primero es una cadena de texto que se muestra como etiqueta
para indicar al usuario el tipo de información solicitada y el segundo es un valor predeterminado que aparece
en el cuadro de texto donde se escribe la información solicitada. El método devuelve un valor de cadena que
contiene el valor que introduce el usuario en la solicitud.
La sintaxis básica del diálogo solicitud de información es:
var result = prompt(mensaje, valor);
Nótese que para poder utilizar el valor devuelto por el método prompt() debe utilizarse una variable a la cual
asignárselo. En la sintaxis anterior mensaje es la cadena de texto que aparece como indicación del tipo de
información que se está solicitando y valor es una cadena con un valor predeterminado que aparecerá en el
cuadro de texto del diálogo solicitud de información. Si no coloca un valor predeterminado en la llamada
aparecerá por defecto, en algunos navegadores el valor undefined. Si no desea esto coloque como valor una
cadena vacía. Como se muestra a continuación:
Ejemplo:
document.write("Esta página fue modificada por última vez: " +
document.lastModified);
OBSERVACIÓN: Aunque estos han sido los métodos tradicionales en los comienzos de JavaScript para generar
contenido dinámico, con el paso del tiempo y las mejoras en los navegadores el contenido dinámico se genera de
otras maneras utilizando principalmente el método innerHTML del objeto document. En este punto hay que
aclarar que innerHTML fue un invento de Microsoft para su navegador Internet Explorer, que se hizo muy popular
de tal manera que hoy en día, todos los navegadores le dan soporte. Sin embargo, de acuerdo a la W3C no forma
parte de ningún estándar, de modo que su alternativa es la manipulación del documento mediante el DOM
(Document Object Model), que estaremos desarrollando más adelante en este curso.
IV. PROCEDIMIENTO
Indicaciones: Crear una carpeta con el nombre DAW y dentro de ella crear otra carpeta a la que
nombrará guia1 y dentro de esta todas las carpetas de los ejercicios que se le muestran a continuación:
ejemplo1
ejemplo2
ejemplo3
ejemplo4
ejemplo5
ejemplo6
Guión 2: presupuesto.js
function init(){
//prompt() permite obtener entrada de datos del usuario
var presupuesto = prompt('Ingrese el presupuesto anual','');
var derma, trau, pedi, i;
var div = document.getElementById('distribucion');
html += "\t</li>\n";
html += "\t<li>\n";
html += "\t\t<a href='#' class='move-right'>\n";
html += "\t\t\tEl presupuesto asignado para Traumatología es: $ " + trauma + "\n";
html += "\t\t</a>\n";
html += "\t</li>\n";
html += "\t<li>\n";
html += "\t\t<a href='#' class='move-right'>\n";
html += "\tEl presupuesto asignado para Pediatría es: $ " + pedia + "\n";
html += "\t\t</a>\n";
html += "\t</li>\n";
html += "</ul>\n";
window.onload = init;
Indicaciones:
Crear una carpeta con el nombre js y dentro de esta colocar los archivos presupuesto.js, creado
anteriormente.
Crear una carpeta con el nombre css y dentro de esta colocar los archivos fonts.css y
prespuesto.css, brindado en los recursos de la guía.
Resultado:
Ejercicio 2: Crear un documento html que mediante un script de JavaScript permita crear la tabla de
multiplicar del número que un usuario ingrese mediante un diálogo prompt().
Guión 1: tablamultiplicar.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8"/>
<title>Tabla de Multiplicar</title>
<link rel="stylesheet" href="css/tablamulti.css"/>
</head>
<body>
<script src="js/multiplicar.js"></script>
</body>
</html>
Guión 2: multiplicar.js
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Materia: Desarrollo de Aplicaciones Web con *
* Software Interpretado en el Cliente *
* Archivo: multiplicar.js *
* Descripción: Genera una tabla de multiplicar del *
* número ingresado por el usuario, que *
* debe ser un número entero entre 1 y 10 *
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
//Ingresando el número y capturándolo usando el método prompt()
var numero = prompt('Ingrese un número entero para obtener su tabla de multiplicar','');
Indicaciones:
Crear una carpeta con el nombre js y dentro de esta colocar los archivos multiplicar.js, creado
anteriormente.
Crear una carpeta con el nombre css y dentro de esta colocar el archivo tablamulti.css, brindado
en los recursos de la guía.
Resultado:
Ejercicio 3: Creación de una calculadora que realiza las operaciones básicas: suma, resta,
multiplicación, división y residuo.
Guión 1: calculadora.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8"/>
<title>Calculadora Básica</title>
<link rel="stylesheet" href="css/calc.css"/>
</head>
<body>
<div id="operaciones"></div>
<div id="resultado"></div>
</body>
<script src="js/calculadora.js"></script>
</html>
Archivo: calculadora.js
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Materia: Desarrollo de Aplicaciones Web con *
* Software Interpretado en el Cliente *
* Archivo: calculadora.js *
* Descripción: Realizar operaciones aritméticas básicas.*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * */
//Función que funciona como manejador de evento
//al producirse el evento load (carga de la página)
function init() {
//Ingresar los datos de los números a operar
var op1 = prompt('Introduzca el primer numero:','');
var op2 = prompt('Introduzca el segundo numero:','');
//Elemento div donde se mostrará el menú de las operaciones
var operaciones = document.getElementById('operaciones');
//Elemento div donde se mostrarán los resultados
var resultado = document.getElementById('resultado');
//Creando el contenido de la página
var contenido = "<header>\n";
contenido += "\t<h1></h1>\n";
contenido += "</header>\n";
contenido += "<nav class='menu'>\n";
contenido += "<ul>\n";
contenido += "\t<li>\n";
contenido += "\t\t<a href=\"javascript:void(0)\"><span>Sumar</span></a>\n";
contenido += "</li>\n";
contenido += "\t<li>\n";
contenido += "\t\t<a href=\"javascript:void(0)\"><span>Restar</span></a>\n";
contenido += "</li>\n";
contenido += "\t<li>\n";
contenido += "\t\t<a href=\"javascript:void(0)\"><span>Multiplicar</span></a>\n";
contenido += "</li>\n";
contenido += "\t<li>\n";
contenido += "\t\t<a href=\"javascript:void(0)\"><span>Dividir</span></a>\n";
contenido += "</li>\n";
contenido += "\t<li>\n";
contenido += "\t\t<a href=\"javascript:void(0)\"><span>Residuo</span></a>\n";
contenido += "</li>\n";
contenido += "</ul>\n";
contenido += "</nav>\n";
//Preparando el manejo del evento click sobre los enlaces del menú
var opciones = document.getElementsByTagName('a');
//Recorrer todos los elementos de enlace (elementos a)
//y asignar el manejador del evento click
for(var i=0; i<opciones.length; i++){
switch(i){
case 0:
//Función sumar
opciones[i].onclick = function(){
resultado.innerHTML = "<p class=\"letterpress\">" + op1 + " + " + op2 +
" = " + (parseFloat(op1) + parseFloat(op2)) + "</p>\n";
}
break;
case 1:
opciones[i].onclick = function(){
resultado.innerHTML = "<p class=\"letterpress\">" + op1 + " - " + op2 +
" = " + (op1 - op2) + "</p>\n";
}
break;
case 2:
opciones[i].onclick = function(){
resultado.innerHTML = "<p class=\"letterpress\">" + op1 + " * " + op2 +
" = " + (op1 * op2) + "</p>\n";
}
break;
case 3:
opciones[i].onclick = function(){
if(op2 == 0){
resultado.innerHTML = "<p class=\"letterpress\">No se puede dividir
entre cero</p>";
}
else {
resultado.innerHTML = "<p class=\"letterpress\">" + op1 + " / " +
op2 + " = " + Math.round((op1 / op2) * 100) / 100 + "</p>\n";
}
}
break;
case 4:
opciones[i].onclick = function(){
if(op2 == 0){
resultado.innerHTML = "<p class=\"letterpress\">No se ha podido
obtener el residuo, por división entre cero.</p>\n";
}
else{
resultado.innerHTML = "<p class=\"letterpress\">" + op1 + " % " +
op2 + " = " + (op1 % op2) + "</p>\n";
}
}
break;
}
}
}
window.onload = init;
Crear una carpeta con el nombre js y dentro de esta colocar los archivos calculadora.js, creado
anteriormente.
Crear una carpeta con el nombre css y dentro de esta colocar el archivo calc.css, brindado en
los recursos de la guía.
Resultado:
Área de Rectángulo
</a>
</li>
</ul>
</nav>
</section>
</body>
</html>
Guión 2: circulo.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Área círculo</title>
<link rel="stylesheet" href="css/areas.css"/>
<script src="js/circulo.js"></script>
</head>
<body>
<section id="figura">
<div class="circulo"></div>
</section>
<nav>
<a href="calculoareas.html" class="back-button">Regresar</a>
</nav>
</body>
</html>
Guión 3: triangulo.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Área triángulo</title>
<link rel="stylesheet" href="css/areas.css"/>
<script src="js/triangulo.js"></script>
</head>
<body>
<section id="figura">
<div class="triangulo"></div>
</section>
<nav>
<a href="calculoareas.html" class="back-button">Regresar</a>
</nav>
</body>
</html>
Guión 4: rectangulo.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Área rectángulo</title>
<link rel="stylesheet" href="css/areas.css"/>
<script src="js/rectangulo.js"></script>
</head>
<body>
<section id="figura">
<div class="rectangulo"></div>
</section>
<nav>
<a href="calculoareas.html" class="back-button">Regresar</a>
</nav>
</body>
</html>
Guión 5: circulo.js
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Materia: Desarrollo de Aplicaciones Web con *
* Software Interpretado en el Cliente *
* Archivo: circulo.js *
* Uso: Calcular el área de un círculo. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
const PI = 3.1415926535;
var radio = prompt('Introduzca el radio del círculo:','');
var area;
area = PI*radio*radio;
document.write("<header><h1>El área del círculo es: " + area + "</h1><hr /><br
/></header>");
Guión 6: triangulo.js
/* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Materia: Desarrollo de Aplicaciones Web con *
* Software Interpretado en el Cliente *
* Archivo: triangulo.js *
* Uso: Calcular el área de un triángulo. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * */
var base = prompt('Introduzca la base del triángulo','');
var altura = prompt('Introduzca la altura del triángulo','');
var area;
area = (base*altura)/2;
document.write("<header><h1>El área del Triángulo es: " + area + "</h1><hr /><br
/></header>");
Guión 7: rectangulo.js
/* * * * * * * * * * * * * * * * * * * * * * * * * * *
* Materia: Desarrollo de Aplicaciones Web con *
* Software Interpretado en el Cliente *
* Archivo: rectangulo.js *
* Uso: Calcular el área de un rectángulo. *
* * * * * * * * * * * * * * * * * * * * * * * * * * */
var base = prompt('Introduzca la base del rectángulo','');
var altura = prompt('Introduzca la altura del rectángulo','');
var area;
area = base*altura
document.write("<header><h1>El área del rectángulo es: " + area + "</h1><hr /><br
/></header>");
Crear una carpeta con el nombre js y dentro de esta colocar los archivos circulo.js, triangulo.js,
rectángulo.js creados anteriormente.
Crear una carpeta con el nombre css y dentro de esta colocar el archivo areas.css, brindado en
los recursos de la guía.
Resultado:
Guión 2: calculodias.js
/* * * * * * * * * * * * * * * * * * * * * * * * * * *
* Materia: Desarrollo de Aplicaciones Web con *
* Software Interpretado en el Cliente *
* Archivo: calculodias.js *
* Uso: Calcular el número de días transcurridos *
* desde la fecha de nacimiento hasta la *
* fecha actual del calendario. *
* * * * * * * * * * * * * * * * * * * * * * * * * * */
var mes = prompt("Ingrese el mes: ", "");
Crear una carpeta con el nombre js y dentro de esta colocar los archivos cálculosdias.js creado
anteriormente.
Crear una carpeta con el nombre css y dentro de esta colocar el archivo calculosdias.css,
brindado en los recursos de la guía.
Resultado:
Ejercicio 6: Cálculo de la
prima y la cuota a pagar por una casa, solicitando al usuario su ingreso salarial por mes.
Guión 1: cuotacasa.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Cuota prima de casa</title>
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Oswald:400,700" />
<link rel="stylesheet" href="css/title.css">
</head>
<body>
<script>
var salario, preciocasa, prima, cuotamensual;
var annios;
var h1, totalh1;
salario = parseFloat(prompt('Ingrese su salario mensual',''));
annios = 12*15; //numero de años a pagar por la casa
preciocasa = parseFloat(prompt('Ingrese el precio de la casa', ''));
if(salario <= 400){
if(preciocasa > 8000){
alert('Lo siento el valor de la casa es muy alto para su sueldo');
}
else{
prima = (preciocasa*0.1);
cuotamensual = (preciocasa-prima)/annios;
document.write("<h1 class='moneyOff'>La prima que usted debe pagar por la casa
es = $ " + Math.round(prima * Math.pow(10,2)) / Math.pow(10,2) + "</h1><hr>");
document.write("<h1 class='moneyOff'>La cuota mensual a pagar durante 30 años es
de = $ " + Math.round(cuotamensual * Math.pow(10,2)) / Math.pow(10,2) + "</h1><hr>");
}
}
else{
prima = (preciocasa*0.2);
cuotamensual = (preciocasa-prima)/annios;
document.write("<h1 class='moneyOff'>La prima que usted debe pagar por la casa es =
$ " + Math.round(prima * Math.pow(10,2)) / Math.pow(10,2) + "</h1><hr>");
document.write("<h1 class='moneyOff'>La cuota mensual a pagar durante 15 años es de
= $ " + Math.round(cuotamensual * Math.pow(10,2)) / Math.pow(10,2) + "</h1><hr>");
}
//Buscar todos los elemento h1 dentro del documento
h1 = document.getElementsByTagName('h1');
//Obtener el total de los elementos h1 encontrados
totalh1 = h1.length;
Crear una carpeta con el nombre css y dentro de esta colocar el archivo title.css, brindado en
los recursos de la guía.
Resultado:
V. DISCUSION DE RESULTADOS
1. Investigue el uso de document.write(), y con dicho método, genere la estructura del siguiente
documento:
2. Similar al ejemplo 3 del procedimiento de esta guía de práctica, cree un sitio web con las páginas que
sean necesarias para realizar conversiones de una cantidad dada en metros a pies, pulgadas y yardas
(investigue los factores de conversión). Debe realizar una página principal donde seleccionar en un
menú a qué unidades desea convertir la cantidad en metros que ingresará y luego, mediante mensaje
prompt() deberá solicitar esa cantidad y luego mostrar un la página web de la unidad de conversión
seleccionada la cantidad ingresada en metros y la cantidad convertida.
3. Crear un programa donde el usuario ingrese en un prompt la temperatura en Celcius y el programa
muestre en la página la temperatura en Fahrenheit.
VII. BIBLIOGRAFIA
Flanagan, David. JavaScript La Guía Definitiva. 1ra Edición. Editorial ANAYA Multimedia. 2007.
Madrid, España.
Powell, Thomas / Schneider, Fritz. JavaScript Manual de Referencia. 1ra Edición. Editorial McGraw-
Hill. 2002. Madrid, España.
McFedries, Paul. JavaScript Edición Especial. 1ra Edición. Editorial Prentice Hall. 2002. Madrid,
España.
Tom Negrino / Dori Smith. JavaScript & AJAX Para Diseño Web. 6ª Edición. Editorial Pearson –
Prentice Hall. 2007. Madrid España.