Mostrando entradas con la etiqueta HTML. Mostrar todas las entradas
Mostrando entradas con la etiqueta HTML. Mostrar todas las entradas

lunes, 28 de enero de 2019

Extraer contenido de páginas web y XML con Node.js y jQuery

A veces necesitamos obtener información a partir del contenido de páginas web: imágenes, enlaces, índices, atributos, etc. Existen muchas formas de hacer esto, y las más comunes hacen uso de algún lenguaje interpretado (como Python y Powershell) y alguna librería para procesar XML o el DOM de HTML, pero eso requiere algún grado de experticia en dichas herramientas.

Sin embargo, hay una librería vieja y confiable con la que muchos programadores, en especial los web, están familiarizados, para manipular el DOM de los documentos HTML: jQuery. Esta librería proporciona una gran facilidad para hacer uso de selectores estándar de CSS, así como funciones especiales de búsqueda de elementos. Así que, utilizando Linux como sistema operativo (por lo que no contaba con Powershell), y estando familiarizado con JavaScript/jQuery/Node.js, esta resultó ser la opción más rápida y fácil para mí.

Sin más preámbulo, esto es lo que podemos hacer para extraer información de una página web utilizando jQuery y Node.js:

  1. Creamos un proyecto nuevo con NPM. Para ello ejecutamos el comando npm init, el cual nos solicita información opcional del proyecto paso a paso. Podemos dejar todas las opciones por defecto, o ajustar lo que necesitemos según el caso. Para este ejemplo se modificó el Entry point de "index.js" a "leerHtml.js", para describir el contenido del script. También se cambió la licencia a MIT. El cambio de nombre y licencia solo son una convención personal, no son obligatorios. Por otra parte, cabe mencionar que para este ejemplo se utilizará Node v10.15.0 con NPM v6.4.1, que es la versión con soporte de largo plazo (LTS) al momento de escribir esta entrada.
  2. Instalamos los paquetes request-promise, jsdom y jquery. El primer paquete nos permitirá obtener el HTML desde la web; el segundo paquete nos servirá para modelar el DOM del documento HTML en JavaScript puro; y el tercero es el que utilizaremos para examinarlo y extraer contenido.
  3. Creamos el archivo leerHtml.js, en el que realizaremos el proceso de extracción de datos del HTML. Para este ejemplo, obtendremos los textos alternativos de todas las imágenes de un artículo de Wikipedia. Se listarán solamente aquellas imágenes que posean el atributo alt, y que este no se encuentre vacío. El código fuente y la descripción de cada paso se muestran a continuación:
  4. Cabe notar algunos puntos:
    • Es necesario crear el objeto jQuery a partir del DOM generado con JSDOM.
    • Los métodos auxiliares de jQuery, como find y each, nos retornan objetos HTML, por lo que es necesario crear objetos de jQuery a partir de estos. Tal es el caso de las variables imagen e imagenes, a las cuales fue necesario aplicar la función $.
  5. Finalmente, para ejecutar el script, escribimos en la terminal node leerHtml.js Podremos ver como se muestra en la línea de comandos el listado de los textos alternativos de las imágenes que se encontraron en la página web.


Esta técnica no solo es aplicable para páginas HTML descargadas desde la web, sino también para archivos cargados desde disco, así como para formato XML. A continuación se muestra un script llamado leerXml.js, para obtener de un archivo XML llamado "paises.xml", el listado de países cuyo código inicia con la letra "a":


Puede notarse que el proceso es muy similar, ya que XML es el superset de HTML, y es también soportado por JSDOM y jQuery. Para ejecutar el script, escribimos en la terminal el comando node leerXml.js, lo cual muestra el siguiente resultado:


El código fuente de este ejemplo se puede encontrar acá: https://github.com/guillegr123/node-jq-readxml

martes, 15 de mayo de 2018

Tutorial de Vue.js 2 - 2. Creación de proyecto desde plantilla

Índice:

Hola nuevamente, en esta ocasión continuaré con la segunda entrega del tutorial de Vue.js 2. En esta ocasión trataremos los siguientes puntos:
  • Definición general del ejemplo
  • Descarga de plantilla WebPack.
  • Ejecución de proyecto de ejemplo.
  • Introducción a la estructura del proyecto

Definición del ejemplo

Para este tutorial, como ejemplo se elaborará una lista de contactos telefónicos, que permita hacer las operaciones ACME con ellos: Añadir, Consultar, Modificar o Eliminar. Los requerimientos específicos se irán describiendo a medida se vaya avanzando en el tutorial.

Descarga de plantilla WebPack

Asumiendo que se instalaron los componentes necesarios indicados en la primera parte del tutorial, podemos proceder a crear la carpeta que contendrá nuestro proyecto en el lugar que deseemos. Luego, abrimos la consola en dicha carpeta, y procedemos a generar el nuevo proyecto a partir de la plantilla de webpack, haciendo uso de la herramienta de línea de comandos de Vue (vue-cli), para ejecutar el siguiente comando:

$ vue init webpack vue2-tutorial-contactos

Con ese comando, le indicamos a la línea de comandos de Vue que deseamos iniciar un nuevo proyecto, a partir de la plantilla webpack, y cuyo nombre será vue2-tutorial-contactos. Luego de ello, para completar la creación del proyecto, la herramienta interactiva preguntará al usuario la información necesaria para generarlo:


En algunos casos, la herramienta mostrará los valores por defecto a un lado del dato requerido, en un tono más claro, y entre paréntesis. Tal es el caso del nombre del proyecto, que como puede notarse es el mismo que le enviamos como tercer parámetro al comando para generar el proyecto. Si deseamos utilizar el valor por defecto, solamente presionamos ENTER. Si no, digitamos el nuevo valor, y presionamos ENTER.

Luego de ello nos solicita la descripción del proyecto. En este caso, ingresamos una pequeña sinopsis de nuestro proyecto de prueba:


El siguiente dato solicitado es el autor del proyecto, el cual se obtiene de la configuración global de GIT:


Seguidamente el asistente nos indica que elijamos el tipo de compilación a utilizar con Vue. En este ejemplo utilizaremos la recomendada, la cual es más fácil de utilizar, pero levemente más pesada (de acuerdo a la descripción, no he probado la segunda opción, jejeje):


Luego debemos elegir si instalar o no el vue-router en nuestro proyecto, el cual se utiliza para navegar entre distintas partes de la aplicación. Si bien no es necesario poseer un componente de enrutamiento elaborado para este proyecto, ya que no tendremos una gran cantidad de "páginas", lo utilizaremos a modo de ejemplo, ya que puede ser de utilidad para proyectos de mayor envergadura. Para instalarlo ingresamos la letra Y, o bien presionamos ENTER solamente, ya que esta es la opción por defecto.


Después se solicita indicar si se utilizará la herramienta ESLint para analizar el código fuente (linter). Si bien no es necesario, ya que Vetur lo hará dentro del Visual Studio Code, dejaremos que el asistente lo instale, para ver cómo se ejecuta y muestra esta herramienta al momento de correr el proyecto.


Luego elegimos la configuración estándar de reglas de ESLint (he aquí una comparación de las configuraciones de lint):


En el siguiente paso, se nos pide indicar si deseamos que el asistente prepare pruebas unitarias para el proyecto. Indicaremos que sí (Y), y seguidamente elegiremos a Karma y Mocha como herramientas para la creación y ejecución de las pruebas.


Como penúltimo paso, se nos pregunta si deseamos que se preparen las pruebas de extremo a extremo (end-to-end) utilizando Nightwatch. Indicaremos que sí.


Y finalmente, el asistente nos consulta si deseamos que se ejecute el comando npm install, una vez creado el proyecto, para instalar todas las librerías y componentes necesarios para poderlo ejecutar. Seleccionaremos que sí, utilizando la herramienta NPM:


Una vez completados estos pasos, el asistente procede a crear el proyecto, e instalar los paquetes necesarios:


Y nos indica cuando el proceso ha finalizado:


Ejecución del proyecto de ejemplo

Allí, en color mostaza, nos indica como podemos ejecutar el proyecto. Tal como dice allí, basta con ingresar a la carpeta vue2-tutorial-contactos, que es la que contiene el proyecto (nótese que el nombre de la carpeta es el mismo que indicamos al iniciar el asistente de vue-cli), y ejecutar el comando npm run dev. Con ello se procede a construir el proyecto.


Una vez finalizada la construcción, se nos indica que se puede ver la aplicación en la URL: http://localhost:8080


Al abrir la ruta en el navegador, vemos el resultado:


Introducción a la estructura del proyecto

Ahora que el proyecto ya esta listo, podemos abrir la carpeta que lo contiene utilizando Visual Studio Code, con la opción de menú File > Open Folder:


En este punto las partes de la estructura del proyecto que más nos interesan son las siguientes:
  • src: contiene el código fuente de Vue del proyecto.
  • index.html: es la página de inicio de la aplicación.
Una gran ventaja de que este proyecto haya sido generado con WebPack es que posee la característica de hot-reload, lo cual quiere decir que luego de modificar un archivo, este es recompilado, y la página web es refrescada automáticamente para ver los cambios. Para probar esto, podemos modificar el mensaje dentro archivo src/components/HelloWorld.vue, así:


Al guardar el archivo, WebPack detecta el cambio, y recompila el archivo modificado, lo cual puede observarse en la terminal donde está corriendo la aplicación:


Y una vez finalizada la compilación, la página es refrescada automáticamente en nuestro navegador (y si no es el caso, basta que la refresquemos nosotros mismos). Nótese el cambio en el texto del mensaje:


Esto es todo en esta ocasión. Pueden encontrar el código fuente de esta parte del tutorial acá: https://github.com/guillegr123/vue2-tutorial-contactos/tree/tutorial-parte-02. Espero próximamente poder mostrar como crear nuestra lista inicial de contactos. Saludos.

miércoles, 6 de diciembre de 2017

WP - Diseño Web - Panel de carga (loading panel)


Hola nuevamente. Tratando de manternerme conectado, (y mientras espero a que se termine de instalar SQL Server), en esta ocasión quiero compartirles una forma bastante sencilla de hacer un panel de cargado con CSS y javascript. El panel de cargado usualmente es un componente que se utiliza para invalidar un área determinada de la página web mientras se realiza algún proceso, para evitar que el usuario realice alguna acción dentro de dicha área.

El panel que les mostraré básicamente es un DIV que poseerá un GIF animado como indicador de procesamiento. Este “panel” se superpondrá a otro elemento DIV, que es el área a invalidar.

Primeramente, este es el HTML de la página web:



Obsérvese que el DIV que se desea invalidar es el que posee el ID "area_invalidar". Dentro de este se ha colocado el DIV que servirá de panel de cargado, como primer elemento hijo (ID="panel_carga").

Luego, tenemos el archivo CSS ("estilos.css"):



La parte de mayor interés está marcada entre los comentarios "Clases CSS de interés". Nótese que el DIV que representa el área a invalidar tendrá la propiedad position con el valor relative, mientras que el DIV que será nuestro panel de carga tendrá el valor de absolute. Esto se debe a que queremos indicar que las propiedades de posición y tamaño del DIV panel de carga serán relativas con respecto al DIV área a invalidar. Gracias a ello podemos especificar el ancho y alto del DIV panel de carga como 100%, para indicar que éste ocupará todo el espacio del área a invalidar.

Luego, en la misma clase utilizada para el panel de carga, tenemos la propiedad de opacidad (alpha para Internet Explorer, opacity para Mozilla Firefox y otros), con la cual especificamos la razón o porcentaje de opacidad del panel de cargado. Al combinarla con un color de fondo (background-color) se logra un efecto de oscurecimiento y transparencia sobre el área invalidada. Adicionalmente a ello se coloca una imagen de fondo, que en este caso es un GIF animado, mediante la propiedad background-image, para que muestre al usuario un indicador de que se está realizando alguna clase de procesamiento. La imagen es centrada y aparece solamente una vez, gracias a las propiedades background-position:center y background-repeat:no-repeat, respectivamente.

También se tiene la propiedad z-index, que indica la “altura” o nivel del elemento. Dicha propiedad tiene significado dentro del elemento padre, por lo que tiene influencia para todos los nodos hermanos. El valor por defecto es cero, por lo que al colocar un valor de, por ejemplo, 10, nos aseguramos de que el panel de cargado estará sobre el resto de elementos contenidos en el DIV de área a invalidar.

Finalmente tenemos la propiedad de visibilidad, que le colocamos el valor de hidden, para que el panel de carga aparezca oculto al mostrarse la página.

Por otra parte se tiene el archivo de código fuente de Javascript. El javascript es necesario para realizar el cambio de las propiedades CSS a través de las acciones del usuario.



En este caso, según puede observarse en la página HTML (arriba), al presionar el botón "Enviar" se ejecutará la función procesar, que recibe como parámetro el ID del DIV que sirve de panel de carga. Dicha función básicamente se encarga de mostrar el DIV de carga.

Nótese que para efectos demostrativos, al final de la función se colocó una llamada a la función setTimeout, para que el panel de cargado se oculte después de 5 segundos. En una aplicación web real, el panel debería de ocultarse una vez se haya obtenido alguna respuesta o resultado después del proceso solicitado.

Este es el resultado final, antes de presionar el botón:


Luego de presionar el botón, nótese el aparecimiento del panel de cargado solamente sobre el área a invalidar, que para efectos de este ejemplo corresponde al mismo formulario web:


Finalmente después de 5 segundos se oculta el panel de cargado, gracias al uso de la función SetTimeOut.

Como pueden observar este método es una forma fácil, rápida y directa de crear un panel de cargado DIV, utilizando solamente HTML, CSS y javascript puros.

Les debo el código fuente para descargar, ya que lo dejé en otra computadora que he prestado por el momento.

Saludos.

Publicado originalmente el 13/02/2013, en https://itsouvenirs.wordpress.com/2013/02/13/diseno-web-panel-de-carga-loading-panel/.

domingo, 22 de octubre de 2017

Tutorial de Vue.js 2 - 1. Qué es Vue.js y preparación del entorno


Índice:

Hola, este es un pequeño tutorial acerca de Vue.js 2 (que espero sí pase de la primera entrega, a diferencia de mis intentos fallidos con Symfony 2 - que por cierto ya van por la v3 - y WebAPI 2 - que por cierto ya esta siendo sustituida por ASP.NET Core 2). La idea de este tutorial surgió como una forma de práctica, después de seguir el tutorial Build a To-Do App with Vue.js 2 de Jeremy Kithome en scotch.io, y para compartir acerca del framework en español.

En esta primera entrega se explicará un poco acerca de qué es Vue.js, y cómo preparar el entorno de desarrollo utilizando Node JS y la herramienta de línea de comandos provista por el framework.

Sin más que agregar, ¡empecemos!

¿Qué es Vue.js?

Vue (pronunciado viú) es un framework progresivo para construir interfaces de usuario utilizando HTML, CSS y Javascript. Es progresivo porque ha sido diseñado para ser adoptado de forma gradual, siendo posible integrarlo con otras librerías en proyectos existentes. Este framework ha sido influenciado desde sus inicios por AngularJS (Angular 1); sin embargo, es más liviano que este, y que otras alternativas similares.

Preparación del entorno de desarrollo

Aunque Vue no depende de ningún framework o herramienta de terceros, y puede codificarse usando cualquier editor de texto, para este tutorial se hará uso de Node JS y la herramienta Vue CLI para la creación del "esqueleto" de la aplicación y su ejecución, y Visual Studio Code con una extensión para el soporte de los componentes de Vue, para la codificación.

Primeramente, se procede a instalar Node JS. Para ello, se recomienda descargar e instalar la versión LTS desde el sitio web oficial (6.11.4 con NPM 3.10.10), para el sistema operativo que se esté utilizando: https://nodejs.org/es/download/

Una vez instalado Node JS, procedemos a instalar la herramienta Vue CLI, que provee un conjunto de plantillas para la creación rápida de aplicaciones. También facilita su ejecución con recarga en caliente, y su compilación para ambiente de producción. Para instalar la herramienta se ejecuta en una terminal el siguiente comando:

npm install -g vue-cli

Para verificar que Vue CLI ha sido instalado correctamente, ejecutamos el comando vue en la línea de comandos, lo cual nos muestra las opciones de uso disponibles:


Luego, con respecto a la edición del codigo fuente, se procede a descargar e instalar Visual Studio Code. La última versión del editor puede descargarse en el siguiente enlace, para el sistema operativo que se esté utilizando: https://code.visualstudio.com/download

Finalmente, para facilitar la edición de los componentes de Vue, buscamos e instalamos "Vetur" en las extensiones de Visual Studio Code.



Vetur es un conjunto de herramientas para trabajar con Vue, que incluye un servidor de lenguaje para VS Code, y provee las funcionaliedades de embellecimiento de código, revisión se errores, auto-completamiento, depuración, entre otras.

Con esto ya se tiene un entorno listo para el desarrollo de nuestra primera aplicación con Vue. En la próxima entrada explicaré como crear el proyecto a partir de la plantilla de webpack, ejecutarlo, y agregar las primeras funcionalidades básicas.

Ir a Parte 2: Creación de proyecto desde plantilla

jueves, 18 de septiembre de 2014

WP - Diseño web - Ventana DIV simple 1


¡Hola nuevamente! Tenía un rato de no escribir por acá, pero es que han sucedido varias cosas en los últimos meses... mis disculpas por ello. En realidad desde hace algún tiempo quería mostrar una forma de hacer ventanas con DIV, basándome en el diseño que utilizamos para nuestro proyecto de graduación. Luego de organizar un poco mis ideas, decidí hacer  una serie de posts en donde explicara como hacer una ventana DIV, e ir mejorando el diseño en cada uno de ellos. Este es el primer post de la serie.

En esta ocasión quiero mostrar una forma sencilla de crear una ventana modal a partir de elementos DIV dentro de una página web. Una ventana modal consiste en una ventana que mantiene el foco respecto a las demás en una aplicación o sistema. En este caso, la ventana modal mantendrá el foco con respecto al resto de la página web.

Por el momento, la estructura de la ventana modal consistirá en dos elementos DIV. El primero de ellos será la ventana en sí. El segundo servirá para cubrir toda la página web, oscureciéndola, dando así la apariencia de que el resto de la página web está deshabilitada. Además, al estar encima del resto de elementos de la página, impedirá que los usuarios puedan hacer clic sobre éstos, dando el efecto de modalidad. Este DIV será conocido como DIV de fondo en el resto de este post. Está de más mencionar que el único DIV que estará sobre este fondo será el DIV de la ventana modal.

Partes de ventana DIV.
Partes de ventana DIV.

Esta ventana modal será manejada como una "clase" Javascript, con el objetivo de que más adelante podamos manejar múltiples ventanas modales dentro de una misma página web, como objetos. Por otra parte, el diseño completo de la ventana se manejará por separado, desde un archivo CSS.

Primeramente, esta es la definición de la clase VentanaDiv, contenida en el archivo ventanadiv.js:

function VentanaDiv(idventana, idfondo) {
  //Obteniendo las referencias a los DIV que utilizaremos
  this.ventana = window.document.getElementById(idventana);
  this.fondo = window.document.getElementById(idfondo);

  //Creando funciones para manipular la ventana
  this.mostrar
    = function() {
        this.fondo.style.visibility = 'visible';
        this.ventana.style.visibility = 'visible';
      };
  this.ocultar
    = function() {
        this.fondo.style.visibility = 'hidden';
        this.ventana.style.visibility = 'hidden';
      };
}
 Como puede observarse, en la primera parte de esta clase se obtienen las referencias a los DIV que se utilizarán para la ventana. Esto implica que los DIV deben existir ya dentro de la estructura DOM de la página web. Las referencias a los objetos se guardan en variables con ámbito global dentro de la clase, y se utilizan para mostrar u ocultar los DIV, en las funciones mostrar() y ocultar(), respectivamente. Éstos métodos han sido definidos dentro de la misma función constructor, y como puede observarse, lo único que hacen es mostrar u ocultar los DIV.

Luego, tenemos la hoja de estilos CSS, que define la forma en que se mostrarán los DIV dentro del sitio web:


/* Clase CSS que define el fondo oscuro */
div.fondoventana
{
    /* Para que el DIV aparezca oculto inicialmente */
    visibility:hidden;

    /* Para que el DIV cubra toda el área de la página web */
    position:fixed;
    top:0px;
    left:0px;
    width:100%;
    height:100%;

    /* Fondo negro con opacidad del 60%, que da un efecto de transparencia */
    background-color:#000000;
    /* Opacidad para Internet Explorer */
    filter:alpha(opacity=60);
    /* Opacidad en CSS3 estándar */
    opacity:0.6;

    /* Este índice debe ser mayor que el del resto de los demás elementos de la página web, para que aparezca sobre ellos */
    z-index:9;
}

/* Clase CSS que define el formato de la ventana */
div.ventana
{
    /* Para que el DIV aparezca oculto inicialmente */
    visibility:hidden;

    /* Para que la ventana aparezca centrada en la página web, con un tamaño de 300x160 píxeles */
    position:fixed;
    left:50%;
    margin-left:-150px;
    top:50%;
    margin-top:-80px;
    width: 300px;
    height:160px;

    /* Borde gris de la ventana */
    border-width:5px;
    border-color:#999999;
    border-style:solid;

    /* Color de la ventana */
    background-color:#FFFFFF;

    /* Espacio de 10 píxeles desde el borde de la ventana hasta el texto interno */
    padding:10px;

    /* Este índice debe ser mayor que el del fondo, para que la ventana esté sobre él */
    z-index:10;
}
Como puede observarse, se han definido dos clases CSS, una de ellas para el DIV fondo y otra para el DIV ventana. Se han usado clases con el objetivo de que las características definidas en la hoja de estilo puedan utilizarse en varios elementos de la página web, en caso de que quiera tenerse más de una ventana en ella.

Por otra parte, en este ejemplo sencillo las propiedades principales de la ventana ya están predefinidas: la ubicación, color, tamaño e índices verticales de los DIV ventana y fondo. Nótese que el índice z del fondo debe ser superior al de los demás elementos de la página, para poder aparecer sobre ellos y cubrirlos. El único elemento con índice z superior es el del DIV de la ventana, ya que debe aparecer por encima del fondo.

Cabe mencionar también que las posiciones de ambos DIV son fijas (position:fixed;). Esto se debe a que su posición debe estar fija con respecto a la ventana que lo contiene, y no debe afectar las posiciones de los demás elementos de la página. El DIV de fondo estará extendido en toda la ventana del explorador web, y el DIV ventana estará centrado. También debe observarse que la propiedad visibility:hidden sirve para indicar que ambos DIV estarán ocultos al abrirse la página web.

Algo que considero importante mencionar es que las características CSS aplicadas a un elemento de la página web se heredan a sus hijos. Por ello, podemos colocar cualquier cosa dentro del DIV de la ventana, confiando que esto se ocultará y mostrará cuando la ventana lo haga (a menos, claro, que estableciéramos características especiales para estos elementos).

Finalmente, se tiene el código fuente de la ṕágina web:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>Ventana DIV 1 - Ventana DIV simple</title>

    <!-- Importando archivos CSS y Javascript - Inicio -->
    <link rel="stylesheet" type="text/css" href="ventanadiv.css" />
    <script language="javascript" type="text/javascript" src="ventanadiv.js" ></script>
    <!-- Importando archivos CSS y Javascript - Fin -->
  </head>
  <body>
    <!-- Contenido de la página web - Inicio -->
    <h1>Ejemplo de ventana DIV 1</h1>
    <br />
    <a href="#" onclick="ventana.mostrar()">Haga click aquí para mostrar la ventana</a>
    <!-- Contenido de la página web - Fin -->

    <!-- DIV de fondo - Inicio -->
    <div id="divfondo"></div>
    <!-- DIV de fondo - Fin -->

    <!-- DIV de ventana - Inicio -->
    <div id="divventana">
      <p>
        <center><h3>Ventana modal</h3></center>
        <br />Bienvenido a mi primera ventana modal web.
      </p>
      <p><center><a href="#" onclick="ventana.ocultar()" >Cerrar</a></center></p>
    </div>
    <!-- DIV de ventana - Fin -->
  </body>
  <script type="text/javascript" >
    //Creación de la ventana
    var ventana = new VentanaDiv("divventana", "divfondo");
  </script>
</html>
Primeramente es necesario incluir los archivos CSS y Javascript que hemos creado especialmente para las ventanas, en el encabezado del documento. Luego de ello, en el cuerpo de la página web se ha colocado el contenido a mostrar, y después de este, los DIV de fondo y ventana. En realidad, en este diseño sencillo no importa donde se coloquen estos DIV, ya que como se dijo anteriormente, al inicio ambos estarán ocultos, y luego se mostrarán de forma fija en la ventana, por lo que no afectarán la ubicación de los demás elementos, al menos de forma visible para el usuario.

Algo muy importante que hay que recalcar es el script ubicado al final del documento. Este script es el encargado de crear el objeto VentanaDiv a partir de la clase Javascript, y que permite el funcionamiento de ésta. Se ha ubicado al final del documento debido a que la estructura DOM del sitio web se va creando conforme al orden de los elementos en el documento HTML (es decir, de izquierda a derecha y de arriba hacia abajo), y es necesario que los DIV ya existan para que el constructor de la clase VentanaDiv pueda obtener sus referencias. Por ello es de suma importancia que este script se ubique después de los DIV en el documento HTML.

Hay que notar que aunque la variable ventana se declara e instancia al final del documento, su ámbito (por así decirlo) abarca todo el documento, una vez que su declaración ha sido procesada. Por ello puede observarse que se hace referencia a ella en los dos hipervínculos que están en el cuerpo de la página web. Éstos hipervínculos no referencian a ninguna página web (por ello solo tienen el # en su propiedad HREF), sino que en el evento onclick de estos se han colocado las invocaciones a los métodos mostrar() y ocultar() de la ventana DIV, para ejecutarlos al momento de dar clic derecho sobre ellos. Esta de más decir que el hipervínculo que invoca al método mostrar()se ubica en el cuerpo visible de la página web, mientras que el hipervínculo que ejecuta el método ocultar() se ubica dentro de la ventana DIV.

Y voilá, tenemos nuestra primera ventana DIV en funcionamiento.
Ventana DIV en funcionamiento.
Ventana DIV en funcionamiento.
Esto es todo por hoy. En los siguientes artículos mostraré como crear métodos para permitir establecer el tamaño de la ventana mediante código javascript, así como incluir un botón de cierre y efecto de sombra para ésta.
Que Dios les bendiga.

Referencias


Publicado originalmente el 18/08/2012, en http://itsouvenirs.wordpress.com/2012/08/18/diseno-web-ventana-div-simple-1/.
Con la tecnología de Blogger.