Java Script
Java Script
CFGS DAM
Módulo: Lenguajes de Marcas
Índice de contenido
● ¿Que es javascript?
● Usos de javascript
● Cómo utilizar javascript
● Salida de datos con javaScript
○ Alert
○ document.write
○ innerHTML
● Comentarios
● Variables
○ Utilización de Variables
● Operadores
● Operando con los elementos existentes en una web
● Ejercicios Propuestos
¿ Que es JAvascript
● Se trata de uno de los lenguajes de programación más
utilizados para programación web
● Complementa el uso de HTML y CSS.
● Con HTML creamos la estructura del documento
● Con CSS le damos estilo y formato
● Con JAVASCRIPT le damos comportamiento y dinamismo.
Usos de javascript
● Con JavaScript (js) podemos hacer cosas como:
○ Controlar de forma dinámica el contenido HTML de una
página
document.getElementById(‘elemento’).innerHTML=”Hola
mundo” [....]
document.getElementById(‘idimagen’).src=”ruta_nueva_image
n” [...]
Usos de javascript
● Cambiar los estilos asociados a las etiquetas HTML
existentes en un documento.
document.getElementById(“elemento”).innerHTML=”Hola
mundo” [....]
document.getElementById("elmentoformulario").value; [....]
como utilizar javascript
● Existen dos formas de incluir código javascript en una
página web
○ Directamente con la etiqueta <script>.....</script> puesta en el body
o en el head
<html>
<html> <head>
<body> <script>
<h1>Mi primer script</h1> alert(‘mi segundo script’);
<script> </script>
alert(‘mi primer script’); </head>
</script> <body>
</body> <h1>Mi segundo script</h1>
</html> </body>
</html>
como utilizar javascript
● Poniendo el código javascript en un fichero externo con
extensión .js y haciendo referencia a el desde nuestra
página web con la etiqueta <script src=’fichero.js’></script>
<html>
fichero.js <head>
<script src=’fichero.js’></script>
</head>
alert (‘hola mundo’); <body>
<h1>Mi segundo script</h1>
<script src=’fichero.js’></script>
</body>
</html>
salida de datos con javascript
● JavaScript permite la salida (escritura) de datos
mediante los siguientes mecanismos:
○ Función alert(‘mensaje de salida’);
■ alert (‘error’);
■ alert (5+6);
○ Función document.write(“texto”)
■ document.write(“hola a todos”)
■ document.write(“<h1>Hola a todos</h1>”);
■ document.write(“<table><tr><td>esto es una
tabla</td></tr></table>”)
La función alert solo permite mostrar mensajes a modo de információn o advertencia en una ventana
emergente.
La función document.write sirve para escribir dentro del body y admite escritura de etiquetas html
salida de datos con javascript
● Función innerHTML
○ Sirve para “incrustar” código HTML en un elemento que existe
previamente dentro del body. Para poder hacer esta operación se hace
uso de la función document.getElementById(‘idelemento’).innerHTML de
<head> JavaScript
<script>
function completar()
{
document.getElementById(‘parrafo’).innerHTML=”<h1>esto es un párrafo</h1>”;
document.getElementById(‘capa’).innerHTML=”<p style=’background-color:red’>esto es una capa</p>”
}
</script>
</head>
<body>
<p id=’parrafo’></p>
<div id=’capa’></capa>
<script>completar();</script>
</body> OJO!! cuando en una cadena de caracteres necesitemos insertar una
comilla tendremos la precaución de que NO SEAN comillas del
mismo tipo con el que hemos iniciado la cadena de caracteres
funciones
● Son fragmentos de código fuente que sirven para organizar
nuestros scripts de javascript y que pueden ser invocadas
tantas veces como se necesiten desde cualquier parte de
una web.
● La sintaxis general de una función es:
var x;
Nótese que las variables
x=10.05; que guardan cadenas de
var y= ‘esto es una variable de cadena’; caractéres hay que
var t; entrecomillarlas.
t=”esto también es una variable de cadena”
var z;
z=true;
var vector;
vector=[“ana”,”pedro”,”luis”];
El carácter decimal en variables numéricas es el .
Las variables de tipo cadena de caractéres van entrecomilladas
Las variables de tipo booleano NO van entrecomilladas
Utilización variables
● Almacenar valores y mostrarlos en alguna función de
salida
<body>
<div id=”resultado”></div>
<script>
var x =10; Con innerHTML podemos insertar código html
en cualquier lugar de un documento html.
alert(x);
document.write(x);
document.getElementById(‘resultado’).innerHTML=’<h1>’+x+’</h1>’
</script>
Para entrelazar código html con variables se usa el operador + que sirve para concatenar cadenas de
caracteres. No se puede usar el valor de la variable directamente en una cadena de caracteres.
Utilización variables
<body> Un uso muy provechoso
<table id='tabla'> de las variables es
para almacenar
<tr>
fragmentos de css o
<td>esta tabla tendrá formato al ejecutar el script</td>
html que podemos
</tr> utilizar en múltiples
</table> zonas de una web
<script>
var estilo = "background-color:lightgrey;border-collapse:collapse;border-
style: 1 px solid red;"
document.getElementById(‘tabla’).style=estilo;
</script>
</body>
Utilización variables
● Otra versión más elegante del ejercicio anterior
<head>
<script>
function formato()
{
var estilo="table {background-color:lightgrey;border-collapse:collapse;border: 1px solid red}"
document.write("<style>"+estilo+"</style>");
}
</script>
</head>
<body>
<script>formato();</script>
<table id='tabla'>
<tr>
<td>esta tabla tendrá formato al ejecutar el script</td>
</tr>
</table>
</body>
Operadores
● Operador de asignación =
● Operador de suma y concatenación de cadenas +
● Operador de resta -
● Operador de multiplicación *
● Operador de división /
● Operador resto de la división %
● Incremento unario ++
● Decremento unario --
● Operadores de acumulación += -= /= *=
Operadores
● Operador de asignación =
○ Sirve para establecer valores en las variables
■ x=10
■ y=10.05
■ z=”cadena de caracteres”
● Operador de suma y concatenación +
○ Sirve para sumar valores numéricos
■ x=10+5 // resultado 15
■ y=10.05+20 // resultado 30.05
○ Pero también se usa para concatenar valores de tipo cadena
■ x=”hola” + “ mundo” // x guardará “hola mundo”
■ y=5 + “hola” // y guardará “5hola”
■ z=”<table><tr><td>”+x+”</td></tr></table>” //z guardará la cadena
“<table><tr><td>hola mundo</td></tr></table>”
Operadores
● Operador de resta -
○ Sirve para restar valores numéricos
■ x=10-5 // resultado 5
■ y=10.05-20 // resultado -10.05
● Operador *
○ Sirve para multiplicar
■ x=10*5 //resultado 50
● Operador /
○ Sirve para hacer la división de valores numéricos
■ x=5/2 //resultado 2.5
● Operador %
○ Devuelve el resto de la división entera
■ x=4%2 //resultado 0
■ y=5%2 //resultado 1
Operadores
● Incremento unario ++
○ Sirve para incrementar en uno una variable numérica
■ x=20;
■ x++; //x ahora tendrá el valor 21
● decremento unario --
● Sirve para incrementar en uno una variable numérica
○ x=20;
○ x--; //x ahora tendrá el valor 19
● Operadores de acumulación
○ Sirven para operar sobre un valor ya existente
■ x=10
● x+=10 // es equivalente a x=x+10-> 20
● x-=10 // es equivalente a x=x-10->0
● x/=2 // es equivalente a x=x/2->5
● x*=10 // es equivalente a x=x*10->100
Operando con elementos existentes en una web
● Muchas veces necesitamos recoger los valores o atributos
de elementos que existen en el body de nuestra web para
operar con ellos.
● Desde JavaScript podemos buscar y acceder a elementos
dentro de nuestro body:
○ Mediante el id del elemento document.getElementById(‘idelemento’)
○ Mediante el nombre de una etiqueta
document.getElementsByTagName(‘etiquetaHTML’)
○ Mediante la clase CSS a la que pueda pertenecer
document.getElementsByClassName(‘claseCSS’)
Operando con elementos existentes en una web
● Por el momento utilizaremos solamente la función
document.getElementById(‘idelemento’)
● El éxito de su funcionamiento se basa en que dentro del body aquellos elementos
con los que queramos trabajar tengan asignado el atributo id.
● Un posible uso es extraer valores de elementos de un formulario html mediante la
propiedad value
<body>
<p id=’parrafo’></p> Asignamos los id a dos elementos input del
<input id=’nombre’ type=”text” /> body
<input id=’apellidos’ type=”text” />
<script> Obtenemos los valores de los cuadros de
texto mediante la propiedad value y los
cuadro1=document.getElementById(‘nombre’).value;
cuadro2=document.getElementById(‘apellidos’).value guardamos en dos variables
document.write(cuadro1+’<br>‘+cuadro2);
usamos los valores para la
</script>
operación que queramos
</body>
Operando con elementos existentes en una web
● Otro uso es modificar un atributo de una etiqueta html
<body>
<p id=’parrafo’></p> Asignamos los id a la imagen que
<img id=’imagen’ src=”” ></img> inicialmente no tiene asignada la propiedad
<script> src
imagen=document.getElementById(‘nombre’);
imagen.src=’/ruta-de-la-imagen’; Guardamos la imagen completa en una
imagen.height=100; variable y luego tratamos dicha variable
imagen.width=200; como si fuera la imagen cambiándole
</script> propiedades como la ruta el ancho o el alto
</body>
Ejercicios Propuestos
1. Crear una web que llame a un script de javaScript que dibuje una tabla de
una fila y una columna sobre un div llamado resultado.
2. Modificar el ejercicio anterior para que el script contenga una variable
de cadena de caracteres que guarde la cadena necesaria para darle color de
fuente azul y tamaño 12 pto a la tabla del ejercicio anterior, así como un
borde simple de 1px azul. Las filas pares tendrán color de fondo
diferente.
3. Crear una web que tenga dos cuadros de texto y un botón y hacer un script
de javaScript para que cuando hagamos click sobre él se muestre con la
función alert la suma de lo escrito en ambos cuadros de texto. Para
convertir una variable a número puedes utilizar la función
parseInt(variable).
4. Modificar el ejercicio anterior para que en lugar del alert con la función
innerHTML se muestre en una tabla el contenido de cada cuadro de texto y
el resultado de la suma
Índice de contenido
● Funciones en JavaScript
● Eventos
● Estructuras de control JavaScript
○ Condicionales
■ if
■ switch
○ Bucles
■ for
■ while
funciones
● Son fragmentos de código fuente que sirven para organizar
nuestros scripts de javascript y que pueden ser invocadas
tantas veces como se necesiten desde cualquier parte de
una web.
● La sintaxis general de una función es:
function suma(a,b)
{
return a+b;
}
Ejemplos de llamadas a funciones
<head>
<script>
function saluda(nombre)
{
alert(“hola…”+nombre);
}
</script>
<body onload=’saluda(“juan”);’>
<button onclick=”saluda(‘antonio’)”>saluda antonio</button>
<input type=”text” onfocus=”saluda(‘ana’)”>
<script>
saluda(‘marta’);
</script>
</body>
Ejemplos de llamadas a funciones
<head>
A la función pasamos como parámetro el id
<script> de algún elemento de la paǵina
function valor(id_objeto)
{
//en nuevas versiones se puede utilizar id_objeto.value directamente
var x = document.getElementById(id_objeto).value;
alert (“El objeto “+ id_objeto + “tiene un valor” +x);
}
</script>
<body>
<button id=”boton” onclick=”valor(‘boton’);” value=”este es el boton”>saluda
antonio</button>
<input id=”cuadro” type=”text” onblur=”valor(‘cuadro’)”>
</body>
Ejemplos de llamadas a funciones: el “atajo” this
<head>
A veces nos interesará pasar a la función
<script> como parámetro el propio elemento
function valor(objeto) (etiqueta) sobre el que ocurre el evento. Se
{ utiliza para esto la palabra this. Muy util en
var x= objeto.value; elementos que tienen eventos sobre si
mismos.
alert (“El objeto “+ objeto.id + “tiene un valor” +x);
}
</script>
<body>
<button id=”boton” onclick=”valor(this);” value=”este es el boton”>saluda
antonio</button>
<input id=”cuadro” type=”text” onfocus=”valor(this)”>
</body>
eventos en javascript
● Sirven para controlar la ocurrencia de algún suceso en
nuestra web. JavaScript los dispara para que el
programador pueda asociar código fuente cuando se
produzca dicho disparo.
● Los más interesantes son:
○ onclick -> ocurre al hacer click sobre un elemento
○ onmouseover -> ocurre al pasar con el ratón sobre un elemento
○ onmouseout -> ocurre al abandonar el ratón el área de un elemento
○ onfocus ->ocurre cuando un elemento recibe el enfoque
○ onchange ->ocurre cuando un elemento cambia su valor
○ onkeydown ->ocurre cuando un usuario ha presionado una tecla
○ onload -> ocurre cuando se está cargando la web
○ ondblclick ->ocurre cuando se hace doble click con el ratón
○ La referencia completa la tenéis en el siguiente link
como utilizar eventos
● Los eventos vienen implementados por defecto en las etiquetas de html.
● Para utilizarlos simplemente ponemos el evento que queramos utilizar
poniendo su nombre antes del cierre de la etiqueta del elemento.
● La acción que desencadena el evento la pondremos entre comillas simples o
dobles. Técnicamente reciben el nombre de manejadores de evento o handlers
function exito(position) {
x.innerHTML = "Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude;
}
La función navigator.geolocation
<!DOCTYPE html> El objeto de javascript navigator dispone
<html> de la propiedad geolocation a través de
<body> la cual podemos comprobar la
disponibilidad del hardware de
<button onclick="getLocation()">Obtener posición</button> posicionamiento -ubicación de red o gps-.
<p id="x"></p> La función getCurrentPosition obtiene las
<script> coordenadas geográficas de nuestra
function getLocation() { ubicación. Una vez obtenidas se las pasa
if (navigator.geolocation) { a la función éxito mediante el parámetro
navigator.geolocation.getCurrentPosition(exito); position.
} else {
x.innerHTML = "Geolocation is not supported by this El parámetro position tiene la latitud y
browser."; longitud de las coordenadas
}
}
function exito(position) { El párrafo cuyo id es x sirve únicamente
x.innerHTML = "Latitude: " + position.coords.latitude + para mostrar los resultados
"<br>Longitude: " + position.coords.longitude;
}
</script>
</body></html>
Combinando geolocalización con mapas
● Hasta hace relativamente poco tiempo la publicación de mapas
en la web era una tarea complicada, solo al alcance de
grandes empresas con disponibilidad de muchos recursos
● El uso masivo de los mapas en la web ha popularizado mucho
este tipo de aplicaciones, a lo que ha contribuido también
la disponibilidad de datos geográficos de calidad como los
de OSM o Google
● La aparición de las librerías JavaScript de software libre
como Leaflet , OpenLayers o gmaps hace que crear un mapa
web sea ahora mucho más fácil.
● Desde el 2018 para usar los mapas de google es necesario
registrarse y aportar datos de facturación. Anterior a dicha
fecha eran de libre uso.
Combinando geolocalización con mapas
● Las librerias de javascript para combinar geolocalización y mapas siguen el
siguiente protocolo mas o menos común:
○ Descargar o hacer referencia a los ficheros .js que tienen las funciones para
la creación y manejo de mapas
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="gmaps.js"></script>
https://raw.github.com/HPNeo/gmaps/master/gmaps.js