sábado, 12 de diciembre de 2015

Firefox OS (fue bonito mientras duró)

Lamentablemente el sistema operativo móvil Firefox OS ha muerto. Hay quien dice que la libertad, lo ha matado. Y ojo porque Mozilla está empezando a soltar lastre, que si os acordáis ya la semana pasada se dijo que Thunderbird también podría estar en el punto de mira.
 
 
Descanse en paz...
 

jueves, 6 de agosto de 2015

Capítulo 42: Añadir elementos al DOM



Contenido:
El Método appendChild; Añadir nodo de texto al DOM; appendChild siempre añade el nuevo nodo como el último nodo hijo; Añadir otros tipos de Nodos; El Método insertBefore añade un nuevo nodo antes del nodo que se indique.

Existen varios métodos para añadir un nuevo nodo al documento:

  • appendChild(): es el método más simple y muestra el nuevo nodo a continuación del último nodo hijo ya presente

var nuevoTexto = document.createTextNode(“Nuevo Texto hijo”); //Nuevo nodo
var miDiv = document.getElementById(“id1”); // Seleccionamos un Nodo Padre.
miDiv.appendChild(nuevoTexto); //Añadimos el nuevo nodo hijo a miDiv

  • insertBefore(): añade un nuevo nodo antes del nodo que indiquemos Tiene dos argumentos: El nodo a añadir y el nodo del que colocarse antes

Capítulo 41: Crear nuevos nodos en el DOM



Contenido:
Los cambios en el DOM no aceptan al documento original; Añadir nuevos nodos al DOM; Dos pasos: crear el nodo y añadirlo al árbol DOM; Uso del Método createElement; Uso del Método createTextNode para crear Nodos de texto; Clonar elementos ya existentes con el Método cloneNode

Para añadir nuevos elementos en el DOM hay que realizar dos pasos:
  1. Crear el nodo utilizando el método createElement() ó el método createTextNode(). También podemos clonar un elemento existente usando el método cloneNode() (Si añadimos true también clonará los nodos hijo).
  2. Añadimos el nuevo nodo en la localización deseada

Ejemplo:

<div id=”id1”>”Este es el contenido del DIV con id = id1</div>
<script>
    var nuevoDiv = document.createElement(“div”);
var nuevoNodoTexto = document.createTextNode(“Aquí está el Texto”);
var miDiv = document.getElementById(“id1”);
var cloneDiv = MiDiv.cloneNode(true);
</script>

Cuando clonamos un nodo, también va a tener la misma id que el nodo original así que debe cambiarse.

Capítulo 40: Leer los atributos de un elemento



Contenido:
Los atributos siempre se colocan dentro del tag de apertura y son nodos hijos del elemento que los contiene; Uso del método getAttribute;

Los atributos siempre están colocados en el Tag de apertura < de forma “atributo >= valor”. Éstos se denominan Node Atribute.
Podemos leer los atributos de un elemento utilizando el método getAttribute.
Ejemplo:

<div id=”id1” title=”informe”>Aquí incluimos texto.</div>
<script>
    var miNodo = document.getElementById(“id1”);
    alert(miNodo.getAttribute(“title”));
</script>

Si intentamos acceder a un atributo que no está definido nos devuelve null.

Capítulo 39: Manipular el DOM



Contenido:
La propiedad childNode; Uso de listNode como un array; Crear una función para añadir los items hijo de un Nodo que sean del tipo element.

Existen varios tipos de Nodos: Element, Text, Comment,...
Cada tipo de nodo tiene un número asociado denominado NodeType

martes, 28 de julio de 2015

Capítulo 36: Leer Cookies



Contenido:
Uso del Método split del Objeto String; document.cookie almacena todas las cookies de una página, separadas por punto y coma; Buscar una cookie por su nombre y que nos devuelva su valor; Métodos indexOf, substring y chartAT del Objeto String; Crear Funciones setCookie y getCookie; Leer valores de Cookies

martes, 21 de julio de 2015

Capitulo 38: Las propiedades del DOM


Contenido:
La propiedad childNode; Uso de listNode como un array; Crear una función para añadir los items hijo de un Nodo que sean del tipo element

childnodes: nos permite acceder a la información de cualquier hijo de un elemento DOM. Se comporta como un array.

Ejemplo:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script>
       function contarListaItems(){
           var elemento01 = document.getElementById("listaTareas");
           var cuenta = 0;
           for (var i = 0; i < elemento01.childNodes.length; i++) {
               if (elemento01.childNodes[i].nodeType == 1) cuenta++
           }
           alert("la lista ordenada contiene " + cuenta + " items");
       }
       window.onload = contarListaItems
    </script>
</head>
<body>
    <h1>Cosas que hacer</h1>
    <ol id="listaTareas">
       <li>Terminar el guión</li>
       <li>Preparar los gráficos</li>
       <li>Grabar la primera parte</li>
    </ol>
    <p id="notasLista">Asegurarse de terminar antes de las 9</p>
</body>
</html>

Capítulo 37: Navegando por el DOM


Contenido:
Vamos a trabajar con las propiedades y métodos del Objeto document; Diagrama de árbol DOM; Cada enlace dentro del DOS se denomina Nodo; existen distintos tipos de Nodos; Nodos element y Nodos de texto; Los 12 tipos de Nodo.

URLs, recursos y enlaces


Hiperenlace: texto clicable que nos permite navegar por internet

<a href = "http://upm.es">UPM</a>

Atributos de <a ...>
  • Hiperenlace asociado: href="..."
  • Página alternativa: alternate
  • mime-type de página enlazada: type
  • Relación con la página enlazada: rel (author, license, tag, ...)
  • Anchor: # (identifica un punto dentro de una página WEB)
  • url de email: mailto:
  • ...
Anchor: se añade al final de una URL e identifica un elemento dentro de una página web (el identificador debe ser único). Ejemplo:

http://upm.es/ejemplo.html#seccion2

En la página web debe de haber el identificativo seccion2. Por ejemplo:

<h4 id="seccion2">Sección2</h4>

Los URLs pueden ser absolutos y relativos. 

También puede llevar el query que se utiliza en interfaces REST o acceso servicios. ejemplo:

http://upm.es/rec1.html?usuario=127

Otros URLs: mailto, telnet,ftp, file. Ejemplo:

Acceso local a un fichero de la máquina: file://
email: mailto:jesus@gmail.com


 

Codificación de caracteres, UNICODE y “character entity”


Codificación UTF8: Código de longitud variable de 1,2,3 o 4 bytes eficiente para lenguas latinas.
Código UNICODE: código de caracteres internacionalizado que puede representar muchas lenguas.

<meta charset="utf-8">

HTML tiene códigos especiales para introducir ciertos caracteres.

miércoles, 15 de julio de 2015

Capítulo 35: Ingredientes de una Cookie


Contenido:
Las cookies tienen asociadas distintos trozos de información; Atributos cookieName y cookieValue; Atributo domain; Atributo path; El atributo secure; El atributo expires; Escritura de una Cookie asignando un valor a document.cookie; Uso de escape; Elaborar una función que escriba nuestras cookies; Aplicación que crea cookies


Atributos:
name
valor
domain (opcional): indica a que pagina/dominio pertenece la cookie.
path (opcional): especifica un directorio donde esté disponible la cookie
secure (opcional): indica que el navegador tiene que usar ssl para enviar la página al navegador
expires: fecha de caducidad (tiempo UTC). Si no se especifica la cookie se borra cuando se termina la sesión del navegador.

3 ejemplos de crear una cookie:

       document.cookie = "nombreusuario=alfredo;expires=15/06/2016 00:00:00";
     
       var cookieDate = new Date(2016, 06, 15);
       document.cookie = "nombreusuario=alfredo;expires=" + cookieDate.toUTCString();
     
       var cookieDate = new Date(2016, 06, 15);
       var usuario = "Alfredo Blanco";
       document.cookie = "nombreusuario=" + escape(usuario) + cookieDate.toUTCString();

Capítulo 34: JavaScript y Cookies


Contenido:
Protocolo HTTP es stateless, no guarda ninguna información de las transacciones; La solución son las cookies; Nos permiten almacenar y recuperar trozos de información a través del navegador; Las cookies expiran; Precauciones; Uso de Cookies en JavaScript; Las cookies son almacenadas y recuperadas con la propiedad document.cookie; Las cookies son pares nombre = valor; Propiedades stringlike; Todas las cookies de una página en una unica cookie document.cookie; cada cookie separada por punto y coma; Tratar con caracteres especiales; funciones escape y unescape; Ejemplo práctico del uso de la función escape.

Las cookies soluciona limitaciones del protocolo http.

document.cookie Propiedad stringlike (Se comporta como un string). Las propiedades son almacenadas y almacenadas usando la propiedad cookie. Cada cookie es un par de texto que incluye nombre=valor. Las propiedades van separadas por “;”

escape(), unescape(): Codifica/decodifica una cokie para que sea almacenada correctamente. escape convierte cualquier caracter no ASCII  del string a su equivalente en formato hexadecimal de dos o cuatro digitos.

Ejemplo:
    <script>
           var str = 'Este es un , (corto) trozo de texto;';
           document.write(str + '<br />' + escape(str));      
    </script>

Capítulo 33: Prioridades en los gestores de eventos


Contenido:
Comportamientos por defecto de los gestores de evento; Los gestores de eventos se ejecutan siempre antes que el elemento HTML con el que están vinculados; Usar gestor de eventos para anular acciones HTML; Uso de gestores de eventos con elementos de un formulario para llevar a cabo validaciones

Los gestores de eventos se ejecutan siempre antes que el comportamiento por defecto del elemento HTML con el que están vinculados. Si no queremos que seejecute el comportamiento predeterminado ni el del gestor de eventos javascript tenemos que retornar un valor de fase a la función javascript que trata el evento.

return = false

onSubmit: evento que se dispara cuando se envia un formulario

Capítulo 32: Entender los gestores de eventos


Contenido:
¿Qué hacen los Eventos? ¿Qué código necesitamos? Nuestro programa debe poder detectar los eventos y disparar una acción; Los eventos más comunes son desencadenados por el usuario; Eventos inline; Separar Código HTML y Código JavaScript. Uso de getElementbyID.

Un evento significa que algo pasa. Nuestro programa debe poder detectarlos. Los eventos más comunes son acciones del usuario (como por ejemplo click con el ratón) aunque otros pueden ser disparados por el propio navegador (por ejemplo onload cuando se termina de cargar una página).

Un gestor de eventos detecta cuando se produce un evento y decide qué acción debe llevarse a cabo como respuesta. Por ejemplo, en código HTML hay algunos gestores de eventos denominados inline:

onmouseover: detecta cuando el cursor está sobre un objeto
onmouseout: detecta cuando el cursor abandona un objeto
onclick: cuando se hace click sobre un objeto

<input type="button" value="pulsar" onclick="miFunción()" />

Uno de los problemas de estos gestores inline es que mezclan código HTML y código Javascript.

Podemos incluir el gestor de evento dentro del código JavaScript con getElementById(). Por ejemplo:

<body>
        <input type="button" id="miBoton" value="pulsar" " />
    <script>
           function alertaBoton(){
           alert("Has pulsado el botón");
       }
           document.getElementById("miBoton").onclick = alertaBoton;
    </script>
</body>

Notas:
  1. Al evento se le asigna la definicion de la función, no la llamada, así que no lleva ()
  2. Es importante tener claro siempre el orden en el que se va a ejecutar el código Javascript.

Se puede envolver el código del gestor de eventos en window.onload = function() {.....} para que no se ejecute hasta que se haya cargado completamente el documento.

window.onload = function() {
               document.getElementById("miBoton").onclick = alertaBoton;
       }

Capítulo 31: Los métodos parse y stringify del objeto JSON


Contenido:
Serializar es convertir datos para almacenar y transmitir; Para serializar un objeto JSON, debemos expresarlo como un String; Uso de los Métodos JSON.parse y JSON.stringify; Serializar: Convertir Objeto JavaScript en Objeto JSON con JSON.stringigy; Deserializar: Convertir Objeto JSON en Objeto Javascript con JSON.parse

Serializar es convertir datos para almacenar y transmitir a través de una red. Para serializar un objeto JSON debemos expresarlo como un string. En los navegadores más recientes podemos usar los métodos:

JSON.parse() // Deserializamos un objeto
JSON.stringify() //Serializamos un objeto

Nota:
Si queremos ejecutar un función cuando la página termine de cargarse tenemos que usar el método onload de HTML:

    <body onload = miFuncionInicial()>