domingo, 26 de febrero de 2017

FEBRERO 22 2017

JavaScript para impacientes - 5.Funciones (1)


Hemos visto que podemos asociar un fragmento de programa a un clic sobre un elemento de una página web. El problema es que si el fragmento es muy grande, el resultado puede resultar difícil de leer. Una alternativa más compacta es crear pequeños "bloques de programa", que llamaremos funciones.

5.1. Una función básica

En su forma más básica, una función nos permite agrupar varias órdenes y dar un nombre a ese conjunto. Así, el ejemplo del apartado 4.5 se podría reescribir así:

<html>
<body>
<script>
function calcularSuma()
{
    var casilla1=document.getElementById("num1");
    var n1 = casilla1.value;
    var casilla2=document.getElementById("num2");
    var n2 = casilla2.value;
    var resultado=document.getElementById("resultado");
    resultado.innerHTML = "Suma: " +(parseInt(n1)+parseInt(n2));
    resultado.style.color = "blue";
}
</script>    
    <form>
        Primer numero:
        <input type="text" name="num1" id="num1" />
        <br />
 
        Segundo numero:
        <input type="text" name="num2" id="num2" />
        <br />
 
        <p id="resultado">Suma: </p>
 
        <button type="button" onclick='calcularSuma()'>Calcular suma</button>
 
    </form>
</body>
</html>
 


5.2. Funciones "personalizables"

No siempre querremos que una función maneje los mismos datos. Por ejemplo, si queremos que una función compruebe si los datos que el usuario ha introducido en una casilla son válidos, es innecesario crear una función para cada casilla. Es preferible crear una única función a la que le podamos indicar qué casilla concreta ha de verificar. Para ese, podemos indicar "parámetros" a la función, que detallaremos en el paréntesis que sigue a su nombre, así:

<html>
<body>
<script>
function calcularSuma(numero1, numero2, posicionResultado)
{
    var casilla1=document.getElementById( numero1 );
    var n1 = casilla1.value;
    var casilla2=document.getElementById( numero2 );
    var n2 = casilla2.value;
    var resultado=document.getElementById( posicionResultado );
    resultado.innerHTML = "Suma: " +(parseInt(n1)+parseInt(n2));
    resultado.style.color = "blue";
}
</script>    
    <form>
        Primer numero:
        <input type="text" name="num1" id="num1" />
        <br />
 
        Segundo numero:
        <input type="text" name="num2" id="num2" />
        <br />
 
        <p id="resultado">Suma: </p>
 
        <button type="button" 
            onclick="calcularSuma('num1', 'num2', 'resultado');">
            Calcular suma</button>
 
    </form>
</body>
</html>
 

En este caso, la función "calcularSuma" recibe tres datos: la primera casilla, la segunda casilla y la posición en la que queremos mostrar el resultado; al llamar a la función, deberemos rellenar esos detalles con los datos reales de las casillas que queramos usar. Así, podemos aplicar esa misma función a bloques distintos de casillas, como en este ejemplo:

<html>
<body>
<script>
function calcularSuma(numero1, numero2, posicionResultado)
{
    var casilla1=document.getElementById( numero1 );
    var n1 = casilla1.value;
    var casilla2=document.getElementById( numero2 );
    var n2 = casilla2.value;
    var resultado=document.getElementById( posicionResultado );
    resultado.innerHTML = "Suma: " +(parseInt(n1)+parseInt(n2));
    resultado.style.color = "blue";
}
</script> 
 
    <form>
        Primer numero:
        <input type="text" name="num1" id="num1" />
        <br />
 
        Segundo numero:
        <input type="text" name="num2" id="num2" />
        <br />
 
        <p id="resultado">Suma: </p>
 
        <button type="button" 
            onclick="calcularSuma('num1', 'num2', 'resultado');">
            Calcular suma</button>
    </form>
 
    <form>
        Primer numero alternativo:
        <input type="text" name="num3" id="num3" />
        <br />
 
        Segundo numero alternativo:
        <input type="text" name="num4" id="num4" />
        <br />
 
        <p id="resultado2">Suma: </p>
 
        <button type="button" 
            onclick="calcularSuma('num3', 'num4', 'resultado2');">
            Calcular suma</button>
    </form>
 
</body>
</html>



Manual JavaScript. Funciones


 <html>

  <head>

  <script type="text/javascript">

  function ver_confirm()

  {

  var name=confirm("Pulsa un botón")

  if (name==true)

  {

  document.write("Has pulsado el botón Aceptar");

  }

  else

  {

  document.write("Has pulsado el botón Cancelar");

  }

  }

  </script>

  </head>

  <body>

  <form>

  <input type="button" onclick="ver_confirm()" 

  value="Mostrar una ventana de confirmación">

  </form>

  </body>

  </html>
En este ejemplo abriremos una ventana permitiendo controlar su aspecto:
<html>

  <head>

  <script language="javascript">

  function open_win()

  {

  window.open("http://www.google.es","nueva","toolbar=yes,
  location=yes, 

  directories=no, status=no, menubar=yes, scrollbars=yes, 
  resizable=no, 

  copyhistory=yes, width=400, height=400");

  }

  </script>

  </head>

  <body>

  <form>

  <input type="button" value="Abrir ventana" 
  onclick="open_win()">

  </form>

  </body>

  </html>
El primer parámetro de open es la dirección que queremos mostrar en la ventana. El segundo es el nombre que queremos darle a la ventana (y que podemos usar, por ejemplo, en el atributo target de los enlaces). El tercer y último parámetro nos permite definir el aspecto de la ventana según los datos que le indicamos.
El siguiente ejemplo nos muestra el uso de location para conseguir la dirección de la página actual en la que nos encontramos o bien ir a una página diferente:
 <html>

  <head>

  <script type="text/javascript">

  function actual_location()

  {

  alert(location);

  }

  function cambiar_location()

  {

  window.location="http://www.google.es/";

  }

  </script>

  </head>

  <body>

  <form>

  <input type="button" onclick="actual_location()" 
  value="Mostrar la URL actual">

  <input type="button" onclick="cambiar_location()" 
  value="Cambiar URL">

  </form>

  </body>

  </html>
Con este código podemos imprimir una página:
 <html>

  <head>

  <script type="text/javascript">

  function printpage()

  {

  window.print();

  }

  </script>

  </head>

  <body>

  <form>

  <input type="button" value="Imprime esta página" 
  onclick="printpage()">

  </form>

  </body>

  </html>
A continuación vamos a ver como cambiar el tamaño de la ventana actual:
 <html>

  <head>

  <script type="text/javascript">

  function resizeWindow()

  {

  window.resizeBy(-100,-100)

  }

  </script>

  </head>

  <body>

  <form>

  <input type="button" onclick="resizeWindow()" 
  value="Retallar ventana">

  </form>

 </body>

 </html>
Nota: Si se usan frames, debe utilizarse el elemento top en vez del elemento window, para representar el frame superior. En el siguiente ejemplo vemos como avanzar a una posición específica de la ventana:
 <html>

  <head>

  <script type="text/javascript">

  function scrollWindow()

  {

  window.scrollTo(100,500)

  }

  </script>

  </head>

  <body>

  <form>

  <input type="button" onclick="scrollWindow()" 
  value="Scroll">

  </form>

  <p>SCROLL SCROLL  SCROLL SCROLL</p>

  <br><br><br><br><br><br><br><br>

  <p>SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL</p>

  <br><br><br><br><br><br><br><br>

  <p>SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL</p>

  <br><br><br><br><br><br><br><br>

  <p>SCROLL SCROLL SCROLL SCROLL SCROLL SCROLLSCROLL</p>

 <br><br><br><br><br><br><br><br>

  </body>

  </html>
En el siguiente ejemplo, vemos como retrasar la ejecución del programa durante un tiempo determinado:
 <html>

  <head>

  <script language="javascript">

  function timeout()

  {

  setTimeout("alert('Esta ventana aparece un seg. después _

  de que hayas pulsado el botón')", 1000)

  }

  </script>

  </head>

  <body>

  <form>

  <input type="button" onclick="timeout()" 
  value="Cuenta atrás">

  </form>

  </body>

  </html>
Un par de detalles sobre este último ejemplo: La función setTimeout tiene dos parámetros como puede verse, una cadena de texto que representa un código JavaScript a ejecutar cuando hayan pasado el número de milisegundos del segundo parámetro.
Para terminar esta galería de ejemplos, veamos como cambiar una imagen por otra en la página:
 <html>

  <head>

  <script type="text/javascript">

  function setSrc()

  {

  var x=document.images

  x[0].src="foto1.gif"

  }

  </script>

  </head>

  <body>

  <img src="foto2.gif" width="107" height="98">

  <form>

  <input type="button" onclick="setSrc()" 
  value="Cambiar imagen">

  </form>

  </body>

  </html>
http://www.lawebera.es/como-hacer/ejemplos-javascript/enjavascript.php#


Propiedad de objetos web innerHTML

La propiedad más interesante de los objetos Web a los que podemos acceder, no forma parte del Standard oficial de HTML.
Se trata de la propiedad innerHTML que fue introducida por Microsoft en Internet Explorer como un método de acceso rápido al contenido completo de un contenedor en HTML. Rápidamente el resto de exploradores lo añadieron en su soporte de lenguaje.
Podemos usar innerHTML para recuperar el contenido actual de un contenedor o insertar nuevo contenido en ese contenedor.
Por contenedor entendemos aquello que está entre las cláusulas < div > y < /div >.
El elemento DIV define un contenedor genérico, el cuál permite a los programadores definir estilos o bloques de contenido.
Como parámetros a DIV tenemos ID, CLASS y ALIGN, aunque éste ultimo cada vez se emplea menos en favor de las CSS.

Ejemplos de uso de DIV.
<div id="primero">
<p>Algún texto.</p>
<p>Un poco más de texto.</p></div>
<div id="segundo"></div>
El primero de los ejemplos muestra 2 párrafos de texto en la página, mientras que el Segundo no muestra nada; simplemente es un contenedor vacío en estos momentos.
Podemos recuperar el contenido de DIV de la siguiente forma:
   var contenido = document.getElementById('primero').innerHTML;
La variable contenido almacena ahora todo el texto de los dos párrafos así como las marcas < p > y < /p >.
Podríamos reemplazar los dos párrafos completamente asignándoles un nuevo valor.
   document.getElementById('primero').innerHTML = '<p>Un parrafo de texto para reemplazar los dos anteriores.</p>’;

https://manuais.iessanclemente.net/index.php/Propiedad_de_objetos_web_innerHTML


Cambio de la secuencia de salida HTML

JavaScript puede crear contenido HTML dinámico:
Fecha: Tue Mar 07 2017 18:25:22 GMT-0500 (. Hora est Pacífico, Sudamérica)
En JavaScript, document.write () se puede utilizar para escribir directamente en la corriente de salida HTML:

Ejemplo

<!DOCTYPE html>
<html>
<body>

<script>
document.write(Date());
</script>

</body>
</html>
Inténtalo tú mismo "
Nunca use document.write (), después de cargar el documento. Se sobrescribirá el documento.

Cambio de contenido HTML

La forma más sencilla de modificar el contenido de un elemento HTML es usando el innerHTML propiedad.
Para cambiar el contenido de un elemento HTML, utilice la siguiente sintaxis:
document.getElementById(id).innerHTML = new HTML
En este ejemplo se cambia el contenido de un elemento <p>:

Ejemplo

<html>
<body>

<p id="p1">Hello World!</p>

<script>
document.getElementById("p1").innerHTML = "New text!";
</script>

</body>
</html>
Inténtalo tú mismo "
En este ejemplo se cambia el contenido de un elemento <h1>:

Ejemplo

<!DOCTYPE html>
<html>
<body>

<h1 id="header">Old Header</h1>

<script>
var element = document.getElementById("header");
element.innerHTML = "New Header";
</script>

</body>
</html>
Inténtalo tú mismo "
Ejemplo explicó:
  • El documento HTML anterior contiene un elemento <h1> con id = "header"
  • Utilizamos el DOM HTML para obtener el elemento con id = "header"
  • Un JavaScript cambia el contenido (innerHTML) de dicho elemento

Cambiar el valor de un atributo

Para cambiar el valor de un atributo HTML, utilice la siguiente sintaxis:
document.getElementById(id).attribute = new value
En este ejemplo se cambia el valor del atributo src de un elemento <img>:

Ejemplo

<!DOCTYPE html>
<html>
<body>

<img id="myImage" src="smiley.gif">

<script>
document.getElementById("myImage").src = "landscape.jpg";
</script>

</body>
</html>
Inténtalo tú mismo "
Ejemplo explicó:
  • El documento HTML anterior contiene un elemento <img> con id = "myImage"
  • Utilizamos el DOM HTML para obtener el elemento con id = "myImage"
  • Un JavaScript cambia el atributo src de ese elemento de "smiley.gif" a "landscape.jpg"

jueves, 23 de febrero de 2017

(FEBRERO 15 2017 )

  

                                 TIPOS DE EVENTOS


algunos eventos de los explicados en clase 
    

-> ondblclick: oprimir el ratón dos veces seguidas.

-> onfocus: es cuando el puntero está activo en algún objeto, tiene el foco en algún objeto.

-> onblur: es cuando un objeto pierde el foco, es decir, es quien tuvo antes el foco

-> onclick:   al oprimir y soltar el ratón.

-> onkeypress: al oprimir una tecla.

-> onkeyup: soltar una tecla pulsada.

El profesor nos explico sobre las ventanas emergentes. tambien sobre los parametros de window.open().





1. Sentencia Javascript para abrir una ventana 


La sentencia es simplemente la función window.open(), lo más complicado es saber cómo utilizar esa función, pero ahora veremos que no reviste ninguna complicación. 

La función window.open() recibe tres parámetros, que se colocan dentro de los paréntesis, de este modo: 

window.open(URL,nombre_de_la_ventana,forma_de_la_ventana) 

Veamos rápidamente cada uno de estos parámetros por separado. 

URL: representa el URL que deseamos abrir en la ventana secundaria, por ejemplo http://www.desarrolloweb.com 
nombre_de_la_ventana: es el nombre que se le asigna a esta ventana para dirigir enlaces con el atributo target del HTML 
forma_de_la_ventana: se indica el aspecto que va a tener la ventana secundaria. Por ejemplo se puede definir su altura, anchura, si tiene barras de desplazamiento, etc 

Veamos un ejemplo de sentencia Javascript completa para abrir una ventana secundaria: 

window.open("http://www.desarrolloweb.com" , "ventana1" , "width=120,height=300,scrollbars=NO") 

Esto quiere decir que abra la página inicial de desarrolloweb.com en una ventana secundaria a la que vamos a llamar ventana1. Además, la ventana será de 120 pixels de ancho, 300 de alto y no tendrá barras de desplazamiento. 

Una aclaración adicional, si después de abrir esa ventana colocamos otro enlace en la página que abría la ventana cuyo atributo target está dirigido hacia el nombre_de_la_ventana (en este caso ventana1), este enlace se mostrará en la ventana secundaria. 

2. Función que abre una ventana 


Lo más cómodo para abrir una ventana es colocar una función Javascript que se encarge de las tareas de abrirla y que reciba por parámetro la URL que se desea abrir. 

El script es sencillo, veámoslo a continuación: 

<script language=javascript> 
function ventanaSecundaria (URL){ 
   window.open(URL,"ventana1","width=120,height=300,scrollbars=NO") 

</script> 

3. Colocamos un enlace 


Este enlace no debe estar dirigido directamente a la página que queramos abrir, sino a la sentencia Javascript necesaria para abrir la ventana secundaria. Para ejecutar una sentencia Javascript con la pulsación de un enlace lo hacemos así: 

<a href="javascript:sentencia_javascript_para_abrir_la_ventana"> 

4. El enlace llama a la función que abre la ventana 

Ahora Veamos cómo quedaría todo ese enlace en la página. 

<a href="javascript:ventanaSecundaria('http://www.desarrolloweb.com')"> Pincha en este enlace para abrir la ventana secundaria</a> 

Que da como resultado: 
Pincha en este enlace para abrir la ventana secundaria 

(En la página que vayamos a colocar este enlace deberíamos tener el script que hemos hecho anteriormente que contenía la función para abrir la ventana.)

Hay que fijarse que las comillas simples que se colocan para definir el URL que se pasa como parámetro de la función ventanaSecundaria(). Son comillas simples porque el href del enlace ya tiene unas comillas dobles, y dentro de comillas dobles siempre se han de utilizar comillas simples a no ser que deseemos cerrar las comillas dobles. 

Parámetros para dar forma a una ventana 


Estos atributos los puedes utilizar en la función window.open() para definir la forma que deseas que tenga tu ventana secundaria. 

Width Ajusta el ancho de la ventana. En pixels
HeightAjusta el alto de la ventana
TopIndica la posición de la ventana. En concreto es la distancia en pixels que existe entre el borde superior de la pantalla y el borde superior de la ventana.
LeftIndica la posición de la ventana. En concreto es la distancia en pixels que existe entre el borde izquierdo de la pantalla y el borde izquierdo de la ventana.
ScrollbarsPara definir de forma exacta si salen o no las barras de desplazamiento. scrollbars=NO hace que nunca salgan. Scrollbars=YES hace que salgan (siempre en ie y solo si son necesarias en NTS).
ResizableEstablece si se puede o no modificar el tamaño de la ventana. Con resizable=YES se puede modificar el tamaño y con resizable=NO se consigue un tamaño fijo.
Directories 
(barra directorios)
A partir de aquí se enumeran otra serie de propiedades que sirven para mostrar o no un elemento de la barra de navegación que tienen los navegadores más populares, como podría ser la barra de menús o la barra de estado. 

Cuando ponemos el atributo=YES estamos forzando a que ese elemento se vea. Cuando ponemos atributo=NO lo que hacemos es evitar que ese elemento se vea.
Location 
(barra direcciones)
Menubar 
(barra de menús)
Status 
(barra de estado)
Titlebar
(la barra del título)
Toolbar 
(barra de herramienta



tomado de :https://desarrolloweb.com/articulos/18.php


EJEMPLOS DEL WINDOW.OPEN

Ejemplo

Abrir una página about: blank en una nueva ventana:
var myWindow = window.open("""""width=200,height=100");
Inténtalo tú mismo "

Ejemplo

Abrir una nueva ventana llamada "MsgWindow", y escribir algún texto en ella:
var myWindow = window.open("""MsgWindow""width=200,height=100");
myWindow.document.write("<p>This is 'MsgWindow'. I am 200px wide and 100px tall!</p>");
Inténtalo tú mismo "

Ejemplo

Vuelva a colocar la ventana actual con una nueva ventana:
var myWindow = window.open("""_self");
myWindow.document.write("<p>I replaced the current window.</p>");
Inténtalo tú mismo "

Ejemplo

Abrir una nueva ventana y controlar su apariencia:
window.open("https://www.w3schools.com""_blank""toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");
Inténtalo tú mismo "

Ejemplo

Abrir varias ventanas:
window.open("http://www.google.com/");
window.open("https://www.w3schools.com/");
Inténtalo tú mismo "

Ejemplo

Abrir una nueva ventana. Close () para cerrar la nueva ventana:
function openWin() {
    myWindow = window.open("""myWindow""width=200,height=100");   // Opens a new window}

function closeWin() {
    myWindow.close();   // Closes the new window}
Inténtalo tú mismo "

Ejemplo

Abrir una nueva ventana. Utilice la propiedad de nombre para devolver el nombre de la nueva ventana:
var myWindow = window.open("""MsgWindow""width=200,height=100");
myWindow.document.write("<p>This window's name is: " + myWindow.name + "</p>");
Inténtalo tú mismo "

Ejemplo

Usando la propiedad de apertura para devolver una referencia a la ventana que se creó la nueva ventana:
var myWindow = window.open("""myWindow""width=200,height=100");   // Opens a new windowmyWindow.document.write("<p>This is 'myWindow'</p>");   // Text in the new windowmyWindow.opener.document.write("<p>This is the source window!</p>");  // Text in the window that created the new window


TOMADO DE :https://www.w3schools.com/jsref/met_win_close.asp

Ventana close () Método

Ejemplo

Utilice abierta () para abrir una nueva ventana, y close () para cerrar la nueva ventana:
function openWin() {
    myWindow = window.open("""myWindow""width=200, height=100");   // Opens a new window}

function closeWin() {
    myWindow.close();   // Closes the new window}
Inténtalo tú mismo "
Más "hacerlo por uno mismo" ejemplos a continuación.

Definición y Uso

El método close () cierra la ventana actual.
Consejo: Este método se utiliza a menudo junto con el open () método.

Soporte para el navegador

Method
close()YesYesYesYesYes

Sintaxis

window.close()

parámetros

Ninguna

Detalles técnicos

Valor de retorno:Se desconoce el valor de retorno

Más ejemplos

Ejemplo

Abrir "www.w3schools.com" en una nueva ventana, y utilizar close () para cerrar la ventana:
function openWin() {
    myWindow = window.open("https://www.w3schools.com""_blank""width=200, height=100");
}

function closeWin() {
    myWindow.close();
}

https://www.w3schools.com/jsref/met_win_close.asp


NUEVO CODIGO PARA VENTANAS MODALES
Las ventanas modales de Twitter Bootstrap se crean usando un plugin de jQuery personalizado. Se puede usar para crear ventanas modales para enriquecer la experiencia del usuario o para añadir funcionalidad a los usuarios.
En este artículo vamos a explicar como disponer de ventanas modales de Twitter Bootstrap Modals.
En nuestro <head> deberemos añadir los estilos de Bootstrap.
<link href="bootstrap.css" rel="stylesheet">
La ventana ya presenta una visualización bastante buena pero podemos cambiarla editando la hoja de estilos.
En nuestro <body> necesitaremos crear un link que abrirá la ventana:
<a data-toggle="modal" href="#example" class="btn btn-primary btn-large">Abrir ventana modal</a>
Ahora tendremos justo debajo el código que representa la ventana en display:none.
<div id="example" class="modal hide fade in" style="display: none;">
    <div class="modal-header">
        <a data-dismiss="modal" class="close">×</a>
        <h3>Cabecera de la ventana</h3>
     </div>
     <div class="modal-body">
         <h4>Texto de la ventana</h4>
        <p>Mas texto en la ventana.</p>                
    </div>
    <div class="modal-footer">
        <a href="index.html" class="btn btn-success">Guardar</a>
        <a href="#" data-dismiss="modal" class="btn">Cerrar</a>
    </div>
</div>
Y finalmente solo faltará incluir los scripts antes de la etiqueta de cierre </body>:
<script src="jquery.js"></script>
<script src="bootstrap-modal.js"></script>


https://www.jose-aguilar.com/blog/bootstrap-modal/

 ¿COMO HACER UNA SIMPLE VENTANA MODAL?

Primero necesitamos un contenedor, un espacio donde ubicar el contenido web que deseamos mostrar. Normalmente ésto se hace con la etiqueta DIV. Este contenedor formará parte de la página web, pero no se mostrará cuando se visualice la página: será un elemento invisible. Luego necesitamos alguna manera de mostrar el contenedor, y su contenido, cuando nos haga falta. Y por último, necesitaremos también alguna forma de ocultar el contenedor. ¡Manos a la obra!
Pega al final de la sección body de tu página web el siguiente código:
<div id=”miVentana” style=”position: fixed; width: 350px; height: 190px; top: 0; left: 0; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: normal; border: #333333 3px solid; background-color: #FAFAFA; color: #000000; display:none;”>
Aquí pones tu contenido web
</div>
Los atributos más importantes de este DIV son:
id: el identificador del elemento, que nos permitirá recuperarlo y acceder a él a través del DOM.
display: le indicamos al navegador que no muestre este elemento (none).
Dentro del DIV deberás colocar el contenido web que deseas mostrar. ¡Procura que quepa dentro del contenedor!
* Luego crea un elemento de script en tu código HTML e inserta las siguientes líneas:
function mostrarVentana()
{
    var ventana = document.getElementById(‘miVentana’);
    ventana.style.marginTop = “100px”;
    ventana.style.left = ((document.body.clientWidth-350) / 2) +  “px”;
    ventana.style.display = ‘block’;
}
Esta función Javascript obtiene una referencia al contenedor a través de su id, lo coloca en el centro del documento mostrado en el navegador, y lo hace visible.
Por último, agrega éstas líneas de código:
function ocultarVentana()
{
    var ventana = document.getElementById(‘miVentana’);
    ventana.style.display = ‘none’;
}
Esta función obtiene una referencia al contenedor a través de su id, y lo hace invisible.
http://www.hinojosachapel.com/2008/11/como-hacer-una-simple-ventana-modal-con-html-y-javascript.aspx#.WL88ITs182w