JavaScript

Cómo imprimir con JavaScript

Para imprimir la pantalla usando JavaScript, solo tenemos que llamar a la función window.print desde cualquier evento.

Sería algo así:

<input type="button" name="imprimir" value="Imprimir" onclick="window.print();">

Si queréis añadir alguna hoja de estilo tenemos que añadir el campo media con el valor print.
Quedaría así:

<link href="hojaestilo.css" rel="stylesheet" type="text/css" media="print" />
Leer más

Dibujar marcadores en un mapa de Google Maps V3

En este ejemplo vamos a dibujar o pintar un marcador en un mapa de Google Maps con el texto que queramos.

En el ejemplo siguiente obtendremos la posición dónde queremos poner el marcador de una base de datos, además el texto que llevará el marcador también lo obtendremos de una base de datos.

Si no os hace falta recuperar posición del marcador de una base de datos podéis omitir
ese paso y reescribir un poco el código.

Lógica de la aplicación

En nuestro ejemplo hemos creado una tabla dentro de la base de datos que tiene un identificador para cada ruta (aunque aquí no vamos a pintar rutas) y un texto que irá en cada marcador, en nuestro caso ese texto ya está en la base de datos y también lo recuperaremos.

Comentamos el código

Declaramos una función en javascript que se llamará “function initialize” la cual se ejecutará en el evento onload que tendrá asociado el “body” de la página web

1
 <body onload="initialize()" onunload="GUnload()">

Estos dos parámetros los utilizamos en nuestro desarrollo para conocer la ruta y la incidencia que queremos mostrar.
Lo más seguro es que no os valgan para nada podéis sustituirlos por los que necesitéis. Nosotros los utilizamos durante el desarrollo para poder hacer la SELECT contra la base de datos y pasarle estos parámetros.

1
2
	$idIncidencia= $_REQUEST['idIncidencia'];
	$idRuta= $_REQUEST['idRuta'];

Aquí nos conectamos con la base de datos

1
	$conectado = @mysql_connect("db44563145646318.db.1and1.com","dbo44563145","elp4ssw0rd");

En el caso de que se conecte con la Base de datos realizamos la select

1
2
3
4
$sql = "SELECT SUBSTRING(LatLong,1,INSTR(LatLong,',')-1) Latitud, 
									SUBSTRING(LatLong,INSTR(LatLong,',')+1) Longitud,Descripcion 
									FROM RutasIncidencia r, IncidenciasAndroid i.....
									........

Y en el caso de que obtengamos datos pintamos el marcador con el texto que hemos puesto en la base de datos:

1
2
3
4
5
6
7
   function createMarker(point, index) {
 
          var letter = String.fromCharCode("A".charCodeAt(0) + index);
          var letteredIcon = new GIcon(baseIcon);
          letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
          ....
          ....

La imagen con el resultado:
google marcador

El código completo sería así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Google Maps JavaScript API Ejemplo de Marcador con texto</title>
    <script src="/js/maps.js"
            type="text/javascript"></script>
    <script type="text/javascript">
    function initialize() {
 
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
 
	  <? 
 
	  	  $descripcion="hola marca";
				$latitud= 10.000;
				$longitud=10.000;
	  echo 'map.setCenter(new GLatLng('.$latitud.', '.$longitud.'), 13);';?>
        map.setUIToDefault();
 
        // Create a base icon for all of our markers that specifies the
        // shadow, icon dimensions, etc.
        var baseIcon = new GIcon(G_DEFAULT_ICON);
        baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        baseIcon.iconSize = new GSize(20, 34);
        baseIcon.shadowSize = new GSize(37, 34);
        baseIcon.iconAnchor = new GPoint(9, 34);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);
 
        // Creates a marker whose info window displays the letter corresponding
        // to the given index.
        function createMarker(point, index) {
          // Create a lettered icon for this point using our icon class
          var letter = String.fromCharCode("A".charCodeAt(0) + index);
          var letteredIcon = new GIcon(baseIcon);
          letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
 
          // Set up our GMarkerOptions object
          markerOptions = { icon:letteredIcon };
          var marker = new GMarker(point, markerOptions);
		  document.cookie ='variable='+index+'; expires=Thu, 2 Aug 2021 20:47:11 UTC; path=/';
		   GEvent.addListener(marker, "click", function() {
            <? echo 'marker.openInfoWindowHtml("<b>" + '.json_encode($descripcion).' + "</b>");';?>
          });
          return marker;
        }
 
		<?
		$x = 0;
			echo'var latlng = new GLatLng('.$latitud.',
            '.$longitud.');
          map.addOverlay(createMarker(latlng, '.$x.'));';
		 ?>
      }
	 <? mysql_close($conectado);
								} else {
									die("NO SE PUDO CONECTAR AL SERVIDOR MYSQL.");
								}
	?>
    }
    </script>
  </head>
  <body onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width: 500px; height: 300px"></div>
  </body>
</html>

Y este es un ejemplo funcionando para ver como quedaría.

**** Hace falta que enlaceis las librerías JavaScript para los mapas de google, las podeis enlazar directamente de google o bien bajároslas y subirlas a vuestro servidor.

Leer más

Función JavaScript sin conocer el número de parámetros

En JavaScript podemos llamar a funciones y enviar un número indeterminado de parámetros, a veces no sabemos cuántos parámetros le vamos a pasar, es aquí cuando podemos preguntar a “arguments” el número de parámetros que le han llegado.

Para saber cuántos parámetros le hemos pasado tenemos que preguntar por la longitud de “arguments” , así:

arguments.length

Este código nos devolverá el número de parámetros que hemos enviado cuando hemos llamado a la función.

Si queremos acceder al contenido de  un parámetro en concreto, podemos hacerlo a través del array “arguments[i]”, dónde i será la posición que ocupa el parámetro que has enviado.

Por ejemplo, tenemos la función prueba:

function prueba (){

alert (arguments[1]);

}

Llamamos a la función así:

prueba(3,4,5);

La función nos mostrará un alert con el número 4, que ocupa la segunda posición el orden de llegada de los parámetros. Hay que tener en cuenta que cuando utilizamos arguments[i] empezamos a contar en la posición 0 después 1, después 2…etc.

Sabiendo el número de parámetros y cómo puedes acceder a cada uno de ellos puedes realizar un sinfín de operaciones.

Leer más

Tutorial Google Maps I

Cómo incluir un mapa de google en tu web.

En este mini “Tutorial Google Maps” vamos a utilizar el API de Google Maps para incluir un mapa en tu aplicación web. La versión que utilizaremos será la última que en el momento de la creación de este tutorial es la versión V3.

En esta versión “V3″ ya no es necesario utilizar una Key, solo será necesario si quieres obtener algunas ventajas o menos limitaciones. No obstante dejo los parrafos siguientes en azul que describen como obtener tu Key por si necesitas crear una para tu aplicación web.

Antes de nada tenemos que tener una cuenta en Google, una vez que hayamos hecho login con nuestra cuenta podemos acceder a la consola del API, aquí es dónde vamos a generar el Token o Key que nos permité usar Google Maps en nuestras aplicaciones, una vez que estemos logeados nos dirigimos a esta dirección:

https://code.google.com/apis/console/

El navegador nos llevará a una página en la que podemos ver todos los servicios de Google en los que estamos dados de alta, tenemos un ítem en el menú de la izquierda en el que pone API Access, desde ahí podemos obtener el Key necesario para utilizarlo en nuestra aplicación, podemos generar otro borrando el anterior si queremos eliminar el antiguo, además si solo vamos a utilizar el Key desde una aplicación web debemos escribir la URL desde la que Google permitirá la utilización de la Key, así impediremos que otros usuarios reutilicen nuestra Key ya que diariamente tiene un uso máximo (aunque este es de 25.000 veces).

Este es el código que tiene Google en su documentación, solo nos hace falta introducir el Key por la que has obtenido antes y cambiar las coordenadas que quieres que muestre tu mapa, en este ejemplo mostraré una isla de Tailandia (Ko Chang) que es dónde debería estar y no aquí haciendo este mini-tutorial.

El código tiene algunas ligeras modificaciones, pero principalmente es así, la Key no es necesaria a no ser que vayas a quieres saltarte algunas limitaciones.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<--! Tutorial google Maps -->
<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=false">
    </script>
    <script type="text/javascript">
      function initialize() {
        var myOptions = {
          center: new google.maps.LatLng(12.570648483963033, 101.44157409667969),
          zoom: 8,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"),
            myOptions);
      }
    </script>
  </head>
  <body onload="initialize()">
    <div id="map_canvas" style="width:60%; height:60%"></div>
  </body>
</html>

Para obtener las coordenadas que necesitas introducir en el código de la aplicación, puedes escribir la dirección en Google Maps, por ejemplo “Ko Chang” y cuando lo muestre pegar este código JavaScript en la barra del navegador, sin las comillas “ javascript:void(prompt(”,gApplication.getMap().getCenter())); “, después presionamos intro y el navegador te mostrará un prompt con las coordenadas del centro del mapa.

Si lo prefieres puedes utilizar algún diseñador de mapas que te muestre las coordenadas, tipo QuickMaps.

Este es el resultado:

Ejemplo Tutorial Google Maps

Leer más

Redireccionar Web | Métodos de redirección

Redireccionar Web

En este artículo describimos como redirigir o redireccionar a un usuario desde tu web a otra URL.
Muchas veces necesitamos enviar al usuario a otra URL diferente, lo más sencillo es utilizar un hipervinculo y que él haga click, no obstante a veces tenemos redireccionar a otra URL de forma diferente, por ejemplo: cuando entras en una web o por medio de algún javaScrip o a traves de código php.

Redireccionar por HTML

Lo más sencillo es utilizar la etiqueta meta e incluir el tiempo que necesitas para que la página se redireccione a la otra URL, en este ejemplo iremos a la página www.codigojavaoracle.com en 5 segundos utilizando el tiempo de refresco de la página (refresh).

La meta-etiqueta meta debe estar entre las etiquetas head de la página HTML
El código quedaría así:

1
2
3
4
5
6
<head>
<meta http-equiv="refresh" content="5"; url="www.codigojavaoracle.com" />
...
</head>
<body>
...

Redireccionar por PHP

En una página php podemos redireccionar utilizando la función header donde le pasamos el nombre de la URL donde queremos que nos envíe

Este sería el código:

1
2
3
<?php
header ("Location: www.codigojavaoracle.com");  
?>

Redireccionar por JavaScript

Por último vamos a redirigir la página utilizando JavaScript para esto crearemos una función que después llamaremos en algún evento, onclick, onbody, etc.

1
2
3
4
5
6
<script type="text/javascript">  
 function redireccionar(){
      window.location ="https://codigojavaoracle.com";
      }   // redireccionar web
      setTimeout ("redireccionar()", 1000); 
 </script>

Obviamente también podemos hacer la redirección sin tener que esperar a un evento, simplemente podemos poner este código sin meterlo en una función consiguiendo así que al leer la función se vaya directamente a la otra URL.

El código sería así:

1
 window.location ="https://codigojavaoracle.com";

Con estas tres sencillas maneras podemos redireccionar una URL a otra URL, no obstante si vas a hacer un redireccionamiento para siempre o para mucho tiempo, debes pensar en hacer un redireccionamiento 302 si es temporal o redireccionamiento 301 si es para siempre, con este tipo de redireccionamiento avisarás a los buscadores de tu nueva dirección y no perderás el posicionamiento que tengas en los buscadores.

Redireccionar Web.

Leer más

Publicar en el muro con JavaScript SDK

En este post explicamos cómo publicar en el muro de un usuario de Facebook utilizando JavaScript (SDK), en artículos anteriores utilizamos código php para publicar en el muro del usuario, si queréis podéis utilizar el buscador del blog para encontrarlo, a continuación describimos dos métodos para realizar la publicación en el muro del usuario.

Publicar con diálogo de confirmación

En el primer ejemplo empleamos el método feed, con este código Facebook nos abre una caja de dialogo donde el usuario puede añadir texto en la publicación que vamos a realizar, después tendrá que darle al botón aceptar para publicar en su muro, es decir, en este primer ejemplo el usuario deberá confirmar la publicación en su muro a través de una caja de dialogo como la que veis en la imagen.

dialogo facebook, friki test

Leer más

AJAX en tres pasos

En este post comentamos como utilizar ajax para refrescar parte de una web de manera asíncrona.

¿Qué significa esto?

Prácticamente que el equipo cliente establecerá una conexión con el servidor en segundo plano, logrando así recargar parte de nuestra web sin que se tenga que recargar toda la página entera, de este modo se logra una mayor interactividad con el usuario y por supuesto una mayor velocidad pues no tenemos que cargar de nuevo todos los elementos (imágenes, música, flash…).

Como indica el título para conseguir esto necesitaremos seguir estos tres pasos que vamos a describir más abajo.

Para utilizar AJAX (Asynchronous JavaScript And XML) debemos saber que navegador utiliza el cliente, por eso en el primer paso creamos un objeto y probamos si funciona, si nuestro código no funciona significa que el cliente utiliza otro tipo de navegador, en este caso probaremos otro tipo de objeto y comprobamos que funciona, logrando de este modo cerciorarnos de que nuestro código funcionará con los distintos navegadores que pueden tener nuestros usuarios.

Primer paso

Creamos el objeto que nos va a permitir enviar y recibir datos a nuestro servidor de forma asincrona. Para esto es necesario crear el objeto “ajaxObjeto”, ahora iremos probando con el try y catch si nuestro navegador es Internet explorer o cualquier otro (Firefox, Opera, Safarim, etc).

El funcionamiento es sencillo, probamos “ajaxObjeto = new XMLHttpRequest();” y si obtenemos un error probaremos esto “ajaxObjeto = new ActiveXObject(“Msxml2.XMLHTTP”);”. Lo hacemos así porque dependiendo del tipo de navegador que use nuestro cliente usaremos un tipo de objeto u otro.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<script language="javascript" type="text/javascript">;
 
<!--
 
function ajaxConexion(url){
 
var ajaxObjeto; // Declaramos la variable
 
try{
 
// Distinto de Internet Explorer
 
ajaxObjeto = new XMLHttpRequest();
 
} catch (e){
 
// Para Internet explorer
 
try{
 
ajaxObjeto = new ActiveXObject("Msxml2.XMLHTTP");
 
} catch (e) {
 
try{
 
ajaxObjeto = new ActiveXObject("Microsoft.XMLHTTP");
 
} catch (e){
 
// Si no pudo crear el objeto
alert("Esta página tiene problemas con su navegador");
return false;
}
}
}
if(ajaxObjeto) {
ajaxObjeto.onreadystatechange = procesoAcabado;
ajaxObjeto.open("GET", url, true);
ajaxObjeto.send("");
}
}
//-->;
</script>
Leer más

Editar páginas Web desde el navegador | contentEditable

contentEditable

Podemos editar páginas desde el navegador utilizando este pequeño truco (curiosidad) y siguiendo estos sencillos pasos, escribes la url y vas a la página que quieres ver y editar, escribes en el espacio que esta la url la siguiente orden:

javascript:document.body.contentEditable ='true';document.designMode='on'; void 0

Con esto haces que la página sea editable y ahora puedes redimensionar o escribir sus componentes, obviamente estos cambios son solo locales y afectan solamente a tu navegador, por lo tanto estas modificaciones solo te permitirían ver como quedaría tu página si hicieses esos cambios en el código.

Funciona desde Firefox e Internet explorer.

Leer más

Función Recursiva sobre JSON con JavaScript

A continuación os dejo una función recursiva JavaScript que he utilizado para recorrer objetos JSON.

Si por ejemplo tenemos un objeto JSON tal que así:

var arbol =  [	 {"id":1, "code":1,"hijos":  [
{"id":11,"code":11},
{"id":12,"code":12}] },
{"id":2, "code":2, "hijos":
[{"id":21,"code":21},
{"id":22,"code":22, "hijos": [
{"id":221,"code":221},
{"id":222,"code":222} ]	}
] } ]
Leer más

Jquery EasyUI : Componente Tree

Introducción a Jquery EasyUI

Jquery EasyUI es una librería javascript que nos proporciona una serie de componentes predefinidos que podemos incorporar fácilmente a nuestras páginas web para hacerlas mucho más atractivas.

Para ver todas las posibilidades que ofrece Jquery EasyUI lo mejor es echarle un ojo a su web.

http://www.jeasyui.com/

Como ya hicimos en otro artículo con Flex, vamos a ver como generar un árbol utilizando esta librería, veremos que es muy sencillo.

Leer más

Firebug – Desarrollo web

Firebug

Firebug es una de las herramientas que considero imprescindibles a la hora de ponernos a desarrollar cualquier aplicación web medianamente compleja, es muy útil a la hora de depurar y trazar código JS,  se puede analizar de manera visual la estructura completa de las páginas HTML, permite ver todas las llamadas que se hacen desde la web a la hora de enviar y recibir información y muchisimas más funcionalidades que iremos viendo poco a poco.

La verdad es que desde que lo conozco no me puedo ni plantear comenzar un desarrollo web ‘serio’ sin esta herramienta. Es una pena que para Internet Explorer no existan herramientas tan potentes como esta (existen algunas parecidas pero más básicas), por lo que al final la opción que siempre tomo es desarrollar las aplicaciones para Firefox y luego adaptarlas (las partes que hagan falta) para que funcionen en Internet Explorer. Para hacer funcionar firebug tenemos que tener instalado: Explorador Mozilla  Firefox: Lo podemos descargar de: http://www.mozilla-europe.org/es/ (La última versión disponible durante la realización de este artículo es la 4.0.1) Una vez tenemos instalado el Firefox hay dos opciones para instalar Firebug Opción 1: Abrir esta pagina web con firefox: https://addons.mozilla.org/es-es/firefox/addon/firebug/ Pulsar sobre el botón

 

Seguir los pasos Opción 2: Abrir esta pagina web con firefox: http://getfirebug.com/downloads Pulsar sobre la versión de firebug que se desee descargar, saldrá una pantalla similar a esta: Seleccionamos la versión que queremos instalar En ambas opciones, una vez reiniciado el Firefox aparecerá en la barra inferior del explorador el bichito que quiere decir que ya tenemos firebug instalado.

EMPEZAMOS:

Para empezar abrimos una página web cualquiera, por ejemplo: https://codigojavaoracle.com/ En un principio firebug debería aparecer deshabilitado, para habilitarlo simplemente pinchamos sobre el bichito y se nos tiene que aparecer una ventanita en la parte inferior de la web: Una vez tenemos esta ventana abierta, ya podemos empezar a usar firebug. Os voy a comentar las funcionalidades de firebug que más me han ayudado a la hora de realizar desarrollos web, con esto quiero decir que no se va a abarcar toda la funcionalidad de firebug (para eso habrá que ir a la documentación oficial). http://getfirebug.com/wiki/index.php/Main_Page Vamos a ver la barra de herramientas de firebug:

INSPECCIONAR ELEMENTO

Si pinchamos este botón y situamos el ratón sobre algún elemento de la web, podemos obtener toda su información y modificarla al vuelo. Por ejemplo si nos colocamos encima de donde pone ‘Desarrollo web’, la consola de firebug en su pestaña HTML nos mostrará toda la información sobre este elemento. Además en la parte derecha de la pestaña HTML nos salen los estilos aplicados y el fichero CSS donde están: Si no nos gusta el texto de “Desarrollo Web” podemos cambiarlo para ver que tal quedaría otro texto: El resultado se obtiene automáticamente en la web:

PANEL CONSOLA:

La pestaña consola nos presenta la información que se va generando según se van produciendo eventos en la página que generen algún tipo de mensaje. Se pueden seleccionar los diferentes tipos de mensajes (html, js, css, red, ajax…) que queremos que se nos muestren en la consola: La parte inferior de la pestaña consola es una línia de comandos desde donde podemos ejecutar código javascript, por ejemplo si ponemos esto: Nos saltará una ventana de alert en el explorador Una gran ventaja  que nos proporciona la consola es que nos permite deshacernos de los engorrosos Alert de javascript que todos hemos utilizado alguna vez a la hora de desarrollar código JS La consola nos proporciona una serie de métodos que podemos utilizar dentro de nuestro código JS para trazar el código sin necesidad de estar todo el rato cerrando ventanitas de alert. console.warn(�mensaje warn’) console.error(�mensaje error’) console.info(�mensaje info’) console.debug(�mensaje debug’) NOTA 1: Todas estas trazas luego hay que quitarlas del código ya que en otro explorador tipo Internet Explorer o en un firefox que no tenga instalado firebug producirian un error JS NOTA 2: El objeto console ofrece más métodos de los que hemos visto aquí (sólo trazas) yo no los he usado pero seguro que aportan cosas interesantes.

A continuación vamos a ver los diferentes botones del panel Consola: Limpiar: Limpia todos los mensajes de la consola. Persistir: Hace que aunque se refresque la pantalla (F5) no se pierda la información de la consola. Perfilar: Si se pulsa este botón se activa el modo análisis de la actividad javascript, todos los comandos JS son analizados, listados y se presentan unas estadísticas de su rendimiento, si se vuelve a pulsar el botón perfilar se para el análisis y se presentan los resultados de toda la actividad JS Los botones de Todo, ErroresAdvertencias, Información e Información de Depuración sirven para filtrar el tipo de mensajes que queremos ver en la consola. Este seria un ejemplo con el botón Todo

Se ven todos los tipos de mensajes. Con Errores sólo se vería el mensaje �error’ Con Advertencias sólo se vería el mensaje �warning’ Con Información sólo se vería el mensaje �info’ Con Información de Depuración sólo se vería el mensaje �debug’ .

Quedan pendientes de analisis los paneles: PANEL HTML, CSS, SCRIPT, DOM y RED

Leer más

Hashtable JavaScript

Esta es una implementación de lo que sería una hashtable de java, pero para javascript, puede resultar muy útil a la hora de manejar colecciones de datos en javascript.

Yo la he utilizado frecuentemente para almacenar objetos javascript y realmente funciona muy bien, su creador es Michael Synovic, se puede obtener también de su web (creo que es la oficial)

http://work.synovic.net/hashtable/hashtable.html

En esta página además del código fuente, existe una herramienta que te muestra el funcionamiento de la librería.

FUNCIONALIDADES:

Contructor(s):

Hashtable()

Creates a new, empty hashtable         

Method(s):

void clear()

Clears this hashtable so that it contains no keys.

boolean containsKey(String key)

Tests if the specified object is a key in this hashtable.

boolean containsValue(Object value)

Returns true if this Hashtable maps one or more keys to this value.

Object get(String key)

Returns the value to which the specified key is mapped in this hashtable.

boolean isEmpty()

Tests if this hashtable maps no keys to values.

Array keys()

Returns an array of the keys in this hashtable.

void put(String key, Object value)

Maps the specified key to the specified value in this hashtable. A NullPointerException is thrown is the key or value is null.

Object remove(String key)

Removes the key (and its corresponding value) from this hashtable. Returns the value of the key that was removed

int size()

Returns the number of keys in this hashtable.

String toString()

Returns a string representation of this Hashtable object in the form of a set of entries, enclosed in braces and separated by the ASCII characters “, ” (comma and space).

Array values()

Returns a array view of the values contained in this Hashtable.

Array entrySet()

Returns a reference to the internal array that stores the data. The Set is backed by the Hashtable, so changes to the Hashtable are reflected in the Set, and vice-versa.

/**
                    Created by: Michael Synovic
                    on: 01/12/2003
                   
                    This is a Javascript implementation of the Java Hashtable object.
                    Copyright (C) 2003  Michael Synovic                    This library is free software; you can redistribute it and/or
                    modify it under the terms of the GNU Lesser General Public
                    License as published by the Free Software Foundation; either
                    version 2.1 of the License, or (at your option) any later version.

                    This library is distributed in the hope that it will be useful,
                    but WITHOUT ANY WARRANTY; without even the implied warranty of
                    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                    Lesser General Public License for more details.

                    You should have received a copy of the GNU Lesser General Public
                    License along with this library; if not, write to the Free Software
                    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA 

                    Contructor(s):
                     Hashtable()
                              Creates a new, empty hashtable
                   
                    Method(s):
                     void clear()
                              Clears this hashtable so that it contains no keys.
                     boolean containsKey(String key)
                              Tests if the specified object is a key in this hashtable.
                     boolean containsValue(Object value)
                              Returns true if this Hashtable maps one or more keys to this value.
                     Object get(String key)
                              Returns the value to which the specified key is mapped in this hashtable.
                     boolean isEmpty()
                              Tests if this hashtable maps no keys to values.
                     Array keys()
                              Returns an array of the keys in this hashtable.
                     void put(String key, Object value)
                              Maps the specified key to the specified value in this hashtable. A NullPointerException is thrown is the key or value is null.
                     Object remove(String key)
                              Removes the key (and its corresponding value) from this hashtable. Returns the value of the key that was removed
                     int size()
                              Returns the number of keys in this hashtable.
                     String toString()
                              Returns a string representation of this Hashtable object in the form of a set of entries, enclosed in braces and separated by the ASCII characters “, ” (comma and space).
                     Array values()
                              Returns a array view of the values contained in this Hashtable.
                     Array entrySet()
                              Returns a reference to the internal array that stores the data. The Set is backed by the Hashtable, so changes to the Hashtable are reflected in the Set, and vice-versa.
                           
                */
                function Hashtable(){
                    this.hashtable = new Array();
                }
               
                /* privileged functions */
               
                Hashtable.prototype.clear = function(){
                    this.hashtable = new Array();
                }             
                Hashtable.prototype.containsKey = function(key){
                    var exists = false;
                    for (var i in this.hashtable) {
                        if (i == key && this.hashtable[i] != null) {
                            exists = true;
                            break;
                        }      
                    }
                    return exists;
                }
                Hashtable.prototype.containsValue = function(value){
                    var contains = false;
                    if (value != null) {
                        for (var i in this.hashtable) {
                            if (this.hashtable[i] == value) {
                                contains = true;
                                break;
                            }
                        }
                    }       
                    return contains;
                }
                Hashtable.prototype.get = function(key){
                    return this.hashtable[key];
                }
                Hashtable.prototype.isEmpty = function(){
                    return (parseInt(this.size()) == 0) ? true : false;
                }
                Hashtable.prototype.keys = function(){
                    var keys = new Array();
                    for (var i in this.hashtable) {
                        if (this.hashtable[i] != null)
                            keys.push(i);
                    }
                    return keys;
                }
                Hashtable.prototype.put = function(key, value){
                    if (key == null || value == null) {
                        throw “NullPointerException {” + key + “},{” + value + “}”;
                    }else{
                        this.hashtable[key] = value;
                    }
                }
                Hashtable.prototype.remove = function(key){
                    var rtn = this.hashtable[key];
                    this.hashtable[key] = null;
                    return rtn;
                }   
                Hashtable.prototype.size = function(){
                    var size = 0;
                    for (var i in this.hashtable) {
                        if (this.hashtable[i] != null)
                            size ++;
                    }
                    return size;
                }
                Hashtable.prototype.toString = function(){
                    var result = “”;
                    for (var i in this.hashtable)
                    {    
                        if (this.hashtable[i] != null)
                            result += “{” + i + “},{” + this.hashtable[i] + “}n”; 
                    }
                    return result;
                }                                 
                Hashtable.prototype.values = function(){
                    var values = new Array();
                    for (var i in this.hashtable) {
                        if (this.hashtable[i] != null)
                            values.push(this.hashtable[i]);
                    }
                    return values;
                }                                 
                Hashtable.prototype.entrySet = function(){
                    return this.hashtable;
                }

Leer más