jueves, 16 de febrero de 2017

Inner html, eventos

innerHTML
innerHTML cambia o devuelve la sintaxis HTML describiendo los descendientes del elemento.
Nota: Si un nodo <div>, <span>, o <noembed> tiene un texto de secundario que incluye los caracteres (&), (<), o (>), innerHTML devuelve estos caracteres como &amp, &lt y &gt respectivamente. Use element.textContent para conseguir una copia correcta del contenido de estos nodos de texto.

SintaxisEDIT

const content = element.innerHTML;
Después de la llamada, content contiene el código HTML serializado describiendo todos los descendientes de element.
 element.innerHTML = content;
Elimina todos los descendientes de element, analiza la cadena content y asigna los nodos resultantes como descendientes de element.

EjemploEDIT

<html>
<head></head>
<body>
 <div          id="txt">
   <script     id="txt0"> x=0 </script>
   <noembed    id="txt1"> 1   </noembed>
   <noframes   id="txt2"> 2   </noframes>
   <noscript   id="txt3"> 3   </noscript>
   <div        id="txt4"> 4   </div>
   <div>
     <noscript id="txt5"> 5   </noscript>
   </div>
   <span       id="txt6"> 6   </span>
 </div>
 <div id="innerHTMLtxt"></div>
<div id="textContenttxt"><div>
<script> 
  for (i=0;i<7;i++){ 
    x="txt"+i; 
    document.getElementById(x).firstChild.nodeValue='&<>'
  }

document.getElementById("innerHTMLtxt").textContent=document.getElementById("txt").innerHTML
document.getElementById("textContenttxt").textContent=document.getElementById("txt").textContent
</script>
<body>
</html>
// HTML:
// <div id="d"><p>Content</p>
// <p>Elaborados Superiores</p>
// </div>

d = document.getElementById("d");
dump(d.innerHTML);

// la cadena "<p>Content</p><p>Elaborados Superiores</p>"
// es lanzada a la ventana de la consola

NotasEDIT

Esta propiedad proporciona una forma sencilla de reemplazar completamente los contenidos de un elemento. Por ejemplo, los contenidos completos del cuerpo del documento se pueden borrar así:
document.body.innerHTML = "";  // Replaces body content with an empty string.
La propiedad innerHTML de muchos tipos de elementos—incluyendo <body> o <html>—puede ser devuelta o establecida. También se puede usar para ver el fuente de una página que ha sido modificada dinámicamente:
// Copiar y pegar en la barra de direcciones como una línea simple
javascript:"<pre>"+document.documentElement.innerHTML.replace(/</g,"&lt;") + "</pre>";
Esta propiedad fue inicialmente implementada por navegadores web, y luego especificada por el WHATWG y el W3C en HTML5. Implementaciones antiguas no la implementarán exactamente igual. Por ejemplo, cuando el texto es entrado en una caja de texto, Internet Explorer cambia el valor del atributo de la entrada de la propiedad innerHTML, pero los navegadores Gecko no lo hacen.

Consideración de seguridad

No es extraño que innerHTML sea usado para  introducir texto en una página web. Esto añade un riesgo de seguridad.
var name = "Juan";
// asumiendo que 'el' es un elemento de HTML DOM
el.innerHTML = name; // sin peligro

// ...

name = "<script>alert('Soy Juan con una alerta molesta!')</script>";
el.innerHTML = name; // fíjese que el texto es molesto y no es realmente lo que se esperaba.
Este es un ejemplo burdo, pero a veces, el texto insertado viene de una entrada de usuario, luego guardado en una base de datos, < y > no han sido configurados y el texto se muestra a otros visitantes. En ese caso, cualquiera puede insertar un script y usarlo para hacer más daño que una alerta, como robo de cookies, por ejemplo. Este ataque se llama cross-site scripting.
Cuando solo tratamos con texto, es recomendable no usar innerHTML, sino textContent, que no interpretará la cadena pasada como HTML, sino como texto plano.

EspecificacionesEDIT

Tomado de:https://developer.mozilla.org/es/docs/Web/API/Element/innerHTML

Eventos

onblur

Este elemento ha perdido el enfoque.
Ejemplo
<p>Cuando deselecciones este control, el color de su contenedor cambiará: <input type="text" onblur="changeColor(this.parentNode)"></p>
Cuando deselecciones este control, el color de su contenedor cambiará: 
onfocus
El elemento ha ganado el enfoque.
Ejemplo
<p>Cuando selecciones este control, el color de fondo de su contenedor cambiará: <input type="text" onfocus="changeColor(this.parentNode)"></p>
Cuando selecciones este control, el color de fondo de su contenedor cambiará: 


onkeypress
una tecla asociada con un carácter ha sido presionada mientras este elemento tenía el enfoque.
En contraste con onkeydown y onkeyup, este evento no será ejecutado por teclas que no están asociadas a caracteres de entrada (la mayoría imprimibles) como, por ejemplo, ALT, CTRL, INS y DEL.
Ejemplo
<p>Cuando presiones una tecla de 'carácter' mientras editas este control, el color de fondo de su contenedor cambiará: <input type="text" onkeypress="changeColor(this.parentNode)"></p>
Cuando presiones una tecla de 'carácter' mientras editas este control, el color de fondo de su contenedor cambiará: 

onkeydown
Una tecla ha sido presionada mientras este elemento tenía el enfoque.
Ejemplo
<p>Cuando presiones una tecla mientras editas este control, el color de fondo de su contenedor cambiará: <input type="text" onkeydown="changeColor(this.parentNode)"></p>
Cuando presiones una tecla mientras editas este control, el color de fondo de su contenedor cambiará: 

onkeyup
Una tecla ha sido soltada mientras este elemento tenía el enfoque.
Ejemplo
<p>Cuando sueltes una tecla mientras editas este control, el colo de fondo de su contenedor cambiará: <input type="text" onkeyup="changeColor(this.parentNode)"></p>
Cuando sueltes una tecla mientras editas este control, el colo de fondo de su contenedor cambiará: 

onload
El navegador ha completado la carga del recurso provisto por este elemento.


ejemplos en clase:
1 ejercicio

<script>
function sumar(){
var a= parseInt(document.getElementById("a").value);
var b= parseInt(document.getElementById("b").value);
//alert( a + b );
//document.write( a + b );
document.getElementById("rta").value= a + b;
document.getElementById("mirespuesta").innerHTML= a + b;
}

function sumar2(a, b){
document.getElementById("rta").value= a + b;
document.getElementById("mirespuesta").innerHTML= a + b;
}


function restar(){
var a= parseInt(document.getElementById("a").value);
var b= parseInt(document.getElementById("b").value);
//alert( a + b );
//document.write( a + b );
document.getElementById("rta").value= a - b;
document.getElementById("mirespuesta").innerHTML= a - b;
}
function multi(){
var a= parseInt(document.getElementById("a").value);
var b= parseInt(document.getElementById("b").value);
//alert( a + b );
//document.write( a + b );
document.getElementById("rta").value= a * b;
document.getElementById("mirespuesta").innerHTML= a * b;
}


sumar2(32, 2);
</script>


<body>
<div id="mirespuesta">hola</div>
A: <input type="text" id="a"><br>
B: <input type="text" id="b"><br>
RTA: <input type="text" id="rta" readonly ><br>
<input type="button" value="Sumar" onclick="sumar();" ><br>
<input type="button" value="Restar" onclick="restar();" ><br>
<input type="button" value="multiplicar" onclick="multi();" ><br>

</body>


                                         2 ejercicio

<script>
function s(){
var a = parseInt(document.getElementById("a").value);
var b = parseInt(document.getElementById("b").value);
//alert ( a + b);
//document.write( a + b);
var rta = a + b;
document.getElementById("rta").value = rta;
document.getElementById("holita").innerHTML = "<marquee><b><font color='#ff0000'>" + "Esto es el resultado de mi suma = " + (a + b ) + "</font></b></marquee>";
}
function r(){
var a = parseInt(document.getElementById("a").value);
var b = parseInt(document.getElementById("b").value);
//alert ( a + b);
//document.write( a + b);
document.getElementById("rta").value = a - b;
document.getElementById("holita").innerHTML = "<marquee><b><font color='#ff0000'>" + "Esto es el resultado de mi resta = " + (a - b ) + "</font></b></marquee>";
}

</script>
<body>


<label>A:</label> <input type="text" id="a" autocomplete="off"><br>
B: <input type="text" id="b"><br>

Rta: <input type="text" id="rta" readonly ><hr>
&nbsp;&nbsp;<input type="button" value="Sumar" onclick="s();" >&nbsp;&nbsp;
<input type="button" value="Restar" onclick="r();">&nbsp;&nbsp;
<input type="button" value="Multiplicar" >

<hr>
<div id="holita">esto es mi mensaje</div>
<hr>

</body>

miércoles, 8 de febrero de 2017

Google Street View

- La primer hora de clase estuvimos en una induccion del sena registrandonos en sofia plus.
- La segunda hora leímos funciones de JavaScript, y el profersor nos dijo que bucaramos en el street view la ubicacion de helmer pardo y era por filas el primero que le mandara el correo al gmail tenia la primera habilidad en 100.


Google Street View
Google Street View es una prestación de Google Maps y de Google Earth que proporciona panorámicas a nivel de calle (360 grados de movimiento horizontal y 290 grados de movimiento vertical), permitiendo a los usuarios ver partes de las ciudades seleccionadas y sus áreas metropolitanas circundantes. Se introdujo, en primer lugar, en los Estados Unidos el día 25 de mayo de 2007. Cuando se lanzó el servicio, sólo cinco ciudades estadounidenses estaban incluidas. Desde entonces se ha expandido a 31 países europeos, 7 latinoamericanos, 17 asiáticos, 5 africanos y la Antártida.
Se puede navegar a través de estas imágenes utilizando los cursores del teclado o usando el ratón. Además, en mayo de 2009 se introdujo una novedad de navegación en la aplicación, basada en los datos proporcionados por la tecnología láser, que permite una navegación más rápida a lo largo del recorrido.
Para la toma de fotografías se tiene en cuenta el clima, horario y temperatura, de esa manera se obtienen fotografías parejas.1
Todas las fotografías son siempre modificadas antes de su publicación final, difuminando caras y matrículas, debido a las políticas de privacidad internas de los diferentes países en los que el servicio está presente.

*street view de helmer pardo:

https://www.google.com.co/maps/place/H%C3%A9lmer+Pardo/@7.1100702,-73.1130225,15z/data=!4m5!3m4!1s0x0:0x5609c4156482e0ff!8m2!3d7.1100702!4d-73.1130225

*street view del divino amor:

https://www.google.com.co/maps/place/Colegio+Integrado+Nuestra+Se%C3%B1ora+del+Divino+Amor/@7.0983917,-73.1293304,17z/data=!4m5!3m4!1s0x8e683fb5d69f0d53:0xb4f1d77e53b5aba!8m2!3d7.0983917!4d-73.1293304!6m1!1e1

*street view de la canasta de lagos:
https://www.google.com.co/maps/place/Supermercados+La+Canasta+Lagos/@7.0720768,-73.1064905,17z/data=!3m1!4b1!4m5!3m4!1s0x8e683f716c2754f9:0x1730701ef77f30dd!8m2!3d7.0720768!4d-73.1043018

*street view del exito de la rosita:
https://www.google.com.co/maps/search/exito+de+Avenida+La+Rosita,+Bucaramanga+-+Santander/@7.1122525,-73.1336522,14z/data=!3m1!4b1

con este link gano mi fila era la fila #5 :



funciones de JavaScript


4.1. Funciones

Cuando se desarrolla una aplicación compleja, es muy habitual utilizar una y otra vez las mismas instrucciones. Un script para una tienda de comercio electrónico por ejemplo, tiene que calcular el precio total de los productos varias veces, para añadir los impuestos y los gastos de envío.
Cuando una serie de instrucciones se repiten una y otra vez, se complica demasiado el código fuente de la aplicación, ya que:
  • El código de la aplicación es mucho más largo porque muchas instrucciones están repetidas.
  • Si se quiere modificar alguna de las instrucciones repetidas, se deben hacer tantas modificaciones como veces se haya escrito esa instrucción, lo que se convierte en un trabajo muy pesado y muy propenso a cometer errores.
Las funciones son la solución a todos estos problemas, tanto en JavaScript como en el resto de lenguajes de programación. Una función es un conjunto de instrucciones que se agrupan para realizar una tarea concreta y que se pueden reutilizar fácilmente.
En el siguiente ejemplo, las instrucciones que suman los dos números y muestran un mensaje con el resultado se repiten una y otra vez:
var resultado;
 
var numero1 = 3;
var numero2 = 5;
 
// Se suman los números y se muestra el resultado
resultado = numero1 + numero2;
alert("El resultado es " + resultado);
 
numero1 = 10;
numero2 = 7;
 
// Se suman los números y se muestra el resultado
resultado = numero1 + numero2;
alert("El resultado es " + resultado);
 
numero1 = 5;
numero2 = 8;
 
// Se suman los números y se muestra el resultado
resultado = numero1 + numero2;
alert("El resultado es " + resultado);
...
Aunque es un ejemplo muy sencillo, parece evidente que repetir las mismas instrucciones a lo largo de todo el código no es algo recomendable. La solución que proponen las funciones consiste en extraer las instrucciones que se repiten y sustituirlas por una instrucción del tipo "en este punto, se ejecutan las instrucciones que se han extraído":
var resultado;
 
var numero1 = 3;
var numero2 = 5;
 
/* En este punto, se llama a la función que suma
    2 números y muestra el resultado */
 
numero1 = 10;
numero2 = 7;
 
/* En este punto, se llama a la función que suma
    2 números y muestra el resultado */
 
numero1 = 5;
numero2 = 8;
 
/* En este punto, se llama a la función que suma
    2 números y muestra el resultado */
...
Para que la solución del ejemplo anterior sea válida, las instrucciones comunes se tienen que agrupar en una función a la que se le puedan indicar los números que debe sumar antes de mostrar el mensaje.
Por lo tanto, en primer lugar se debe crear la función básica con las instrucciones comunes. Las funciones en JavaScript se definen mediante la palabra reservada function, seguida del nombre de la función. Su definición formal es la siguiente:
function nombre_funcion() {
  ...
}
El nombre de la función se utiliza para llamar a esa función cuando sea necesario. El concepto es el mismo que con las variables, a las que se les asigna un nombre único para poder utilizarlas dentro del código. Después del nombre de la función, se incluyen dos paréntesis cuyo significado se detalla más adelante. Por último, los símbolos { y } se utilizan para encerrar todas las instrucciones que pertenecen a la función (de forma similar a como se encierran las instrucciones en las estructuras if o for).
Volviendo al ejemplo anterior, se crea una función llamada suma_y_muestra de la siguiente forma:
function suma_y_muestra() {
  resultado = numero1 + numero2;
  alert("El resultado es " + resultado);
}
Aunque la función anterior está correctamente creada, no funciona como debería ya que le faltan los "argumentos", que se explican en la siguiente sección. Una vez creada la función, desde cualquier punto del código se puede llamar a la función para que se ejecuten sus instrucciones (además de "llamar a la función", también se suele utilizar la expresión "invocar a la función").
La llamada a la función se realiza simplemente indicando su nombre, incluyendo los paréntesis del final y el carácter ; para terminar la instrucción:
function suma_y_muestra() {
  resultado = numero1 + numero2;
  alert("El resultado es " + resultado);
}
 
var resultado;
 
var numero1 = 3;
var numero2 = 5;
 
suma_y_muestra();
 
numero1 = 10;
numero2 = 7;
 
suma_y_muestra();
 
numero1 = 5;
numero2 = 8;
 
suma_y_muestra();
...
El código del ejemplo anterior es mucho más eficiente que el primer código que se mostró, ya que no existen instrucciones repetidas. Las instrucciones que suman y muestran mensajes se han agrupado bajo una función, lo que permite ejecutarlas en cualquier punto del programa simplemente indicando el nombre de la función.
Lo único que le falta al ejemplo anterior para funcionar correctamente es poder indicar a la función los números que debe sumar. Cuando se necesitan pasar datos a una función, se utilizan los "argumentos", como se explica en la siguiente sección.

domingo, 5 de febrero de 2017

PRIMER PERIODO 2017

PRIMER PERIODO 

- El miércoles 1 de febrero comenzamos el año escolar 2017
  
- El profesor nos dio la inducción de como iba a hacer el resto de los días, nos dio las reglas, explico la metodología.

-La niña que tenga suelto el cabello dentro de la institución va a contar como una anotación de camisa.

Hicimos un ejercicio en clase:
<html>
<head>
</head>
<body>
</body>
<script>
funtion sumar(){
var a= parseInt(prompt("a"));
var b= parseInt(prompt("b"));
alert=(a+b)

}

sumar();
</script>
</html>