<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>.:: Seam City ::. &#187; javascript</title>
	<atom:link href="http://seamcity.madeinxpain.com/archives/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://seamcity.madeinxpain.com</link>
	<description>Sobre programación en general, y Seam en particular</description>
	<lastBuildDate>Thu, 22 Jan 2009 15:35:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Marcas de Google Maps con menu contextual</title>
		<link>http://seamcity.madeinxpain.com/archives/marcas-de-google-maps-con-menu-contextual</link>
		<comments>http://seamcity.madeinxpain.com/archives/marcas-de-google-maps-con-menu-contextual#comments</comments>
		<pubDate>Fri, 04 Jul 2008 08:34:49 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[google-maps]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=45</guid>
		<description><![CDATA[En un post anterior hablaba de como añadir un tooltip personalizado a nuestras marcas de google maps, que permitia mostrar cualquier objeto DOM como si fuese un tooltip de la marca.
Siguiendo la misma idea, podemos hacer un menu contextual para las marcas, que se active al hacer click sobre ellas, y contenga acciones a ejecutar [...]]]></description>
			<content:encoded><![CDATA[<p>En un <a href="http://http://seamcity.madeinxpain.com/archives/marcas-de-google-maps-con-tooltip-personalizado" >post anterior</a> hablaba de como añadir un tooltip personalizado a nuestras marcas de google maps, que permitia mostrar cualquier objeto DOM como si fuese un tooltip de la marca.</p>
<p>Siguiendo la misma idea, podemos hacer un menu contextual para las marcas, que se active al hacer click sobre ellas, y contenga acciones a ejecutar sobre la marca en cuestion.</p>
<p>Para ello seguiremos los siguientes pasos:</p>
<ol>
<li>Crear el menu y sus acciones</li>
<li>Asignar el menu a la marca, y una referencia de la marca al menu para poder ejecutar acciones sobre ella</li>
<li>Mostrar el menu con el evento onclick y ocultarlo al seleccionar una opción</li>
</ol>
<p><a href="http://seamcity.madeinxpain.com/examples/gmap/menu.html" >ver ejemplo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/marcas-de-google-maps-con-menu-contextual/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marcas de Google Maps con tooltip personalizado</title>
		<link>http://seamcity.madeinxpain.com/archives/marcas-de-google-maps-con-tooltip-personalizado</link>
		<comments>http://seamcity.madeinxpain.com/archives/marcas-de-google-maps-con-tooltip-personalizado#comments</comments>
		<pubDate>Tue, 01 Jul 2008 06:12:33 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[google-maps]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=44</guid>
		<description><![CDATA[Al situar el ratón encima de una imagen o cualquier elemento del DOM, éste es capaz de mostrar en un tooltip el texto de su atributo 'title',
ejemplo
En las marcas de Google Maps este efecto puede conseguirse especificando el atributo 'title' en el constructor de la marca.


var coords = new GLatLng&#40;41.647471, -0.885569&#41;;
var mark = new GMarker&#40;coords,&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Al situar el ratón encima de una imagen o cualquier elemento del DOM, éste es capaz de mostrar en un tooltip el texto de su atributo 'title',</p>
<div style="display:inline;padding:2px 5px 2px 5px;background-color:#ccaaaa" title="texto de ejemplo">ejemplo</div>
<p>En las marcas de Google Maps este efecto puede conseguirse especificando el atributo 'title' en el constructor de la marca.</p>
<div class="syntax_hilite">
<div id="javascript-2">
<div class="javascript"><span style="color: #003366; font-weight: bold;">var</span> coords = <span style="color: #003366; font-weight: bold;">new</span> GLatLng<span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">41</span>.<span style="color: #CC0000;">647471</span>, -<span style="color: #CC0000;">0</span>.<span style="color: #CC0000;">885569</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #003366; font-weight: bold;">var</span> mark = <span style="color: #003366; font-weight: bold;">new</span> GMarker<span style="color: #66cc66;">&#40;</span>coords,&nbsp; <span style="color: #66cc66;">&#123;</span>title:<span style="color: #3366CC;">'texto de ejemplo'</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span></div>
</div>
</div>
<p>
<a href="http://seamcity.madeinxpain.com/examples/gmap/basic.html" >ver ejemplo</a></p>
<p>El problema es que esta opción es muy limitada, ya que se restringe al uso de texto plano. Lo ideal sería poder mostrar cualquier elemento del DOM que queramos, con su HTML y su CSS.<br />
Para conseguirlo vamos a seguir estos pasos:</p>
<ol>
<li>Crear el nodo del DOM que queramos mostrar o coger un nodo ya existente y ponerlo como un atributo de la marca</li>
<li>Al escuchar el evento mouseover de la marca, añadir el nodo al div contenedor del mapa en el la posición en la que se encuentra la marca</li>
<li>Al escuchar el evento mouseout de la marca, eliminar el nodo del div contenedor del mapa para ocultarlo.</li>
</ol>
<p><a href="http://seamcity.madeinxpain.com/examples/gmap/tooltip.html" >ver ejemplo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/marcas-de-google-maps-con-tooltip-personalizado/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo limitar el zoom y el desplazamiento en Google Maps</title>
		<link>http://seamcity.madeinxpain.com/archives/como-limitar-el-zoom-y-el-desplazamiento-en-google-maps</link>
		<comments>http://seamcity.madeinxpain.com/archives/como-limitar-el-zoom-y-el-desplazamiento-en-google-maps#comments</comments>
		<pubDate>Fri, 20 Jun 2008 08:43:58 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[google-maps]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=46</guid>
		<description><![CDATA[En ocasiones nos interesa restringir el desplazamiento del usuario sobre el mapa a un área determinada, o limitar los niveles de zoom máximo y mínimo.
En el caso del zoom la solución es bastante sencilla. Solo hay que sobreescribir los métodos getMinimumResolution() y getMaximumResolution() de cada uno de los tipos de mapas GMapType presentes en nuestro [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones nos interesa restringir el desplazamiento del usuario sobre el mapa a un área determinada, o limitar los niveles de zoom máximo y mínimo.</p>
<p>En el caso del zoom la solución es bastante sencilla. Solo hay que sobreescribir los métodos getMinimumResolution() y getMaximumResolution() de cada uno de los tipos de mapas GMapType presentes en nuestro mapa.<br />
Para el caso del desplazamiento, la solución es algo más compleja. Consiste en escuchar el evento <em>move</em>, que es lanzado por el objeto GMap cuando hay un desplazamiento, y comprobar las coordenadas del mapa tras el desplazamiento. Si estas coordenadas quedan fuera del área a la que queremos limitar el desplazamiento, usamos el metodo GMap.setCenter para que el mapa quede dentro de nuesta área.</p>
<p>Esta clase implementa la funcionalidad deseada:</p>
<div class="syntax_hilite">
<div id="javascript-4">
<div class="javascript"><span style="color: #009900; font-style: italic;">/******&nbsp; TRestricter&nbsp; **********************************************/</span></p>
<p><span style="color: #009900; font-style: italic;">// Constructor</span><br />
TRestricter = <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>map<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">map</span> = map;<br />
<span style="color: #66cc66;">&#125;</span><br />
<span style="color: #009900; font-style: italic;">// Función que activa la limitación del desplazamiento entre la esquina inferior izquierda</span><br />
<span style="color: #009900; font-style: italic;">// y la esquina superior derecha</span><br />
TRestricter.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">restrict</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>sw, ne<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">map</span>._allowedBounds = <span style="color: #003366; font-weight: bold;">new</span> GLatLngBounds<span style="color: #66cc66;">&#40;</span>sw, ne<span style="color: #66cc66;">&#41;</span>;<br />
GEvent.<span style="color: #006600;">addListener</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">map</span>, <span style="color: #3366CC;">'move'</span>, <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">checkBounds</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span><br />
<span style="color: #009900; font-style: italic;">// Función que desactiva la limitación del desplazamiento</span><br />
TRestricter.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">unrestrict</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">map</span>._allowedBounds = <span style="color: #003366; font-weight: bold;">null</span>;<br />
<span style="color: #66cc66;">&#125;</span><br />
<span style="color: #009900; font-style: italic;">// Listener encargado de comprobar el desplazamiento</span><br />
TRestricter.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">checkBounds</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>!<span style="color: #000066; font-weight: bold;">this</span>._allowedBounds || <span style="color: #000066; font-weight: bold;">this</span>._allowedBounds.<span style="color: #006600;">contains</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">getCenter</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span>;<br />
<span style="color: #003366; font-weight: bold;">var</span> x = Math.<span style="color: #006600;">min</span><span style="color: #66cc66;">&#40;</span>Math.<span style="color: #006600;">max</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">getCenter</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">lng</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #000066; font-weight: bold;">this</span>._allowedBounds.<span style="color: #006600;">getSouthWest</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">lng</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #000066; font-weight: bold;">this</span>._allowedBounds.<span style="color: #006600;">getNorthEast</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">lng</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #003366; font-weight: bold;">var</span> y = Math.<span style="color: #006600;">min</span><span style="color: #66cc66;">&#40;</span>Math.<span style="color: #006600;">max</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">getCenter</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">lat</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #000066; font-weight: bold;">this</span>._allowedBounds.<span style="color: #006600;">getSouthWest</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">lat</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #000066; font-weight: bold;">this</span>._allowedBounds.<span style="color: #006600;">getNorthEast</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">lat</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">setCenter</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> GLatLng<span style="color: #66cc66;">&#40;</span>y,x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span><br />
<span style="color: #009900; font-style: italic;">// Establece los límites de zoom del mapa</span><br />
TRestricter.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">zoomLevels</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>min, max<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> array = <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">map</span>.<span style="color: #006600;">getMapTypes</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> || <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;<br />
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i=<span style="color: #CC0000;">0</span>; i<br />
array<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">getMinimumResolution</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> min <span style="color: #66cc66;">&#125;</span>;<br />
array<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">getMaximumResolution</span> = <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span> <span style="color: #000066; font-weight: bold;">return</span> max <span style="color: #66cc66;">&#125;</span>;<br />
<span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p><a href="http://seamcity.madeinxpain.com/examples/gmap/restrict.html" >Y aquí tenemos un ejemplo de la clase en acción</a></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/como-limitar-el-zoom-y-el-desplazamiento-en-google-maps/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arrays asociativos en javacript</title>
		<link>http://seamcity.madeinxpain.com/archives/arrays-asociativos-en-javacript</link>
		<comments>http://seamcity.madeinxpain.com/archives/arrays-asociativos-en-javacript#comments</comments>
		<pubDate>Tue, 17 Jun 2008 09:50:14 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=39</guid>
		<description><![CDATA[En javascript se llama array asociativo a aquellos que en vez de estar organizados con indices numericos en funcion de su posicion dentro del array, están organizados por claves no numericas.
Este tipo de arrays puede ser muy útil si tenemos listas de objetos que poseen un identificador.


&#60;br /&#62;
var array_asociativo =&#160; new Array&#40;&#41;;&#60;br /&#62;
array_asociativo&#91;'uno'&#93; = 'brinkindans';&#60;br [...]]]></description>
			<content:encoded><![CDATA[<p>En javascript se llama array asociativo a aquellos que en vez de estar organizados con indices numericos en funcion de su posicion dentro del array, están organizados por claves no numericas.<br />
Este tipo de arrays puede ser muy útil si tenemos listas de objetos que poseen un identificador.</p>
<div class="syntax_hilite">
<div id="javascript-10">
<div class="javascript">&lt;br /&gt;<br />
<span style="color: #003366; font-weight: bold;">var</span> array_asociativo =&nbsp; <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;&lt;br /&gt;<br />
array_asociativo<span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'uno'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #3366CC;">'brinkindans'</span>;&lt;br /&gt;<br />
array_asociativo<span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'dos'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #3366CC;">'crusaito'</span>;&lt;br /&gt;<br />
array_asociativo<span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'tres'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #3366CC;">'maiquel yason'</span>;&lt;br /&gt;<br />
array_asociativo<span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">'cuatro'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #3366CC;">'robocó'</span>;&lt;/p&gt;<br />
&lt;p&gt;alert<span style="color: #66cc66;">&#40;</span>array_asociativo<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'tres'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">// --&gt;&nbsp; maiquel yason&lt;br /&gt; </span></div>
</div>
</div>
<p></p>
<p>Como se puede obervar este tipo de arrays se acerca mas al concepto de Map que al de Array.<br />
Esto ocurre porque los arrays en javascript heredan de la clase Object.<br />
El codigo anterior seria equivalente a este:</p>
<div class="syntax_hilite">
<div id="javascript-11">
<div class="javascript">&lt;br /&gt;<br />
<span style="color: #003366; font-weight: bold;">var</span> array_asociativo =&nbsp; <span style="color: #003366; font-weight: bold;">new</span> Object<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;&lt;br /&gt;<br />
array_asociativo.<span style="color: #006600;">uno</span> = <span style="color: #3366CC;">'brinkindans'</span>;&lt;br /&gt;<br />
array_asociativo.<span style="color: #006600;">dos</span> = <span style="color: #3366CC;">'crusaito'</span>;&lt;br /&gt;<br />
array_asociativo.<span style="color: #006600;">tres</span> = <span style="color: #3366CC;">'maiquel yason'</span>;&lt;br /&gt;<br />
array_asociativo.<span style="color: #006600;">cuatro</span> = <span style="color: #3366CC;">'robocó'</span>;&lt;/p&gt;<br />
&lt;p&gt;alert<span style="color: #66cc66;">&#40;</span>array_asociativo<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'tres'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;&nbsp; <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; maiquel yason&lt;br /&gt; </span></div>
</div>
</div>
<p></p>
<p>En ambos casos podemos acceder a sus propiedades utilizando la notación de paréntesis o la notacion de puntos.</p>
<div class="syntax_hilite">
<div id="javascript-12">
<div class="javascript">&lt;br /&gt;<br />
<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>array_asociativo<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'uno'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; brinkindans&lt;br /&gt;</span><br />
<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>array_asociativo.<span style="color: #006600;">dos</span><span style="color: #66cc66;">&#41;</span>;&nbsp; <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; crusaito&lt;br /&gt; </span></div>
</div>
</div>
<p></p>
<p>El principal problema con estos arrays viene cuando queremos iterar por ellos. Al no estar organizados por indices, no nos vale el típico "for( i=0; i<array .length; i++)"<br />
Deberemos usar un "for in"</p>
<div class="syntax_hilite">
<div id="javascript-13">
<div class="javascript">&lt;br /&gt;<br />
<span style="color: #000066; font-weight: bold;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #000066; font-weight: bold;">in</span> array_asociativo<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>&lt;br /&gt;<br />
&nbsp; <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span>;&nbsp; <span style="color: #009900; font-style: italic;">// Nombre de la clave&lt;br /&gt;</span><br />
&nbsp; <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span>array_asociativo<span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">// valor&lt;br /&gt;</span><br />
<span style="color: #66cc66;">&#125;</span>&lt;br /&gt;</div>
</div>
</div>
<p>Sin embargo al iterar de esta forma no solo se enumeran las propiedades del objeto en cuestión, si no también sus funciones por lo que deberíamos hacer una comprobación de tipos mediante el operando "typeof". Este operando devuelve un String con el tipo del operador sobre el que se ejecuta.<br />
Aqui están los resultado al ejecutar el operador "typeof" sobre cada uno de los tipos de javascript.</p>
<div class="syntax_hilite">
<div id="javascript-14">
<div class="javascript">&lt;br /&gt;<br />
<span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #003366; font-weight: bold;">new</span> Object<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; &nbsp;'object'&lt;br /&gt;</span><br />
<span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; &nbsp;&nbsp; 'object' , ya que los arrays heredan de los objetos&lt;br /&gt;</span><br />
<span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #000066;">alert</span> <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; &nbsp;'function', ya que alert() es una función&lt;br /&gt;</span><br />
<span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #3366CC;">'cadena'</span> <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; &nbsp;'string', ya que 'cadena' es un String&lt;br /&gt;</span><br />
<span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #CC0000;">21</span> <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; &nbsp;'number', ya que es un numero&lt;br /&gt;</span><br />
<span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #003366; font-weight: bold;">true</span> <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; &nbsp; 'boolean'&lt;br /&gt;</span><br />
<span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #003366; font-weight: bold;">null</span> <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; &nbsp; 'object', null también es considerado como un objeto&lt;br /&gt;</span><br />
<span style="color: #000066; font-weight: bold;">typeof</span> undefined <span style="color: #009900; font-style: italic;">//--&gt;&nbsp; &nbsp; 'undefined'&lt;br /&gt; </span></div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/arrays-asociativos-en-javacript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diferencias entre null y undefined</title>
		<link>http://seamcity.madeinxpain.com/archives/diferencias-entre-null-y-undefined</link>
		<comments>http://seamcity.madeinxpain.com/archives/diferencias-entre-null-y-undefined#comments</comments>
		<pubDate>Wed, 11 Jun 2008 07:16:23 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=40</guid>
		<description><![CDATA[En javascript existen cinco tipos primitivos de datos: undefined, null, boolean, number y string.
A primera vista no se aprecia la diferencia entre los tipos undefined y null.
El tipo undefined corresponde a las variables que han sido definidas y todavía no se les ha asignado un valor.
El tipo null se suele utilizar para representar objetos que [...]]]></description>
			<content:encoded><![CDATA[<p>En javascript existen cinco tipos primitivos de datos: <em>undefined, null, boolean, number y string.</em><br />
A primera vista no se aprecia la diferencia entre los tipos undefined y null.</p>
<p>El tipo undefined corresponde a las variables que han sido definidas y todavía no se les ha asignado un valor.<br />
El tipo null se suele utilizar para representar objetos que en ese momento no existen.</p>
<p>Sin embargo aunque son conceptos distintos el operando de igualdad los considera iguales. No así el operando <em>typeof</em>  o el operador de igualdad estricta <em>===</em>.</p>
<div class="syntax_hilite">
<div id="javascript-18">
<div class="javascript">&lt;br /&gt;<br />
<span style="color: #66cc66;">&#40;</span>undefined == <span style="color: #003366; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span> <span style="color: #009900; font-style: italic;">//--&gt; true&lt;br /&gt;</span><br />
<span style="color: #66cc66;">&#40;</span>undefined === <span style="color: #003366; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span> <span style="color: #009900; font-style: italic;">//--&gt; false&lt;br /&gt;</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> undefined == <span style="color: #000066; font-weight: bold;">typeof</span> undefined <span style="color: #003366; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span> <span style="color: #009900; font-style: italic;">//--&gt; false&lt;br /&gt; </span></div>
</div>
</div>
<p></p>
<p>Si intentamos operar con una variable que tiene valor <em>null</em>, según el contexto devolverá los siguientes resultados.</p>
<div class="syntax_hilite">
<div id="javascript-19">
<div class="javascript">Boolean: false&lt;br /&gt;<br />
Numeric: <span style="color: #CC0000;">0</span>&lt;br /&gt;<br />
String: “<span style="color: #003366; font-weight: bold;">null</span>”</div>
</div>
</div>
<p></p>
<p>Si intentamos operar con una variable que tiene valor <em>undefined</em>, según el contexto devolverá los siguientes resultados.</p>
<div class="syntax_hilite">
<div id="javascript-20">
<div class="javascript">Boolean: false&lt;br /&gt;<br />
Numeric: NaN&lt;br /&gt;<br />
String: “undefined”</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/diferencias-entre-null-y-undefined/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extendiendo el objeto Array</title>
		<link>http://seamcity.madeinxpain.com/archives/extendiendo-el-objeto-array</link>
		<comments>http://seamcity.madeinxpain.com/archives/extendiendo-el-objeto-array#comments</comments>
		<pubDate>Fri, 30 May 2008 11:58:50 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=41</guid>
		<description><![CDATA[Una de las mejores características de javascript es que se pueden añadir funciones a las 'clases'  en cualquier momento a traves de la propiedad prototype.
Aprovechando esta capacidad podemos extender el objeto Array para añadirle funcionalidades de búsqueda y eliminación.
array.indexOf
Devuelve el indice del array en el que se encuentra el elemento. Devuelve -1 si no [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las mejores características de javascript es que se pueden añadir funciones a las 'clases'  en cualquier momento a traves de la propiedad <em>prototype</em>.<br />
Aprovechando esta capacidad podemos extender el objeto Array para añadirle funcionalidades de búsqueda y eliminación.</p>
<p><strong>array.indexOf</strong><br />
Devuelve el indice del array en el que se encuentra el elemento. Devuelve -1 si no encuentra el elemento</p>
<div class="syntax_hilite">
<div id="javascript-28">
<div class="javascript">Array.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">indexOf</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i = <span style="color: #CC0000;">0</span>; i &amp;lt;this.<span style="color: #006600;">length</span>; i++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> == element<span style="color: #66cc66;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> i;<br />
&nbsp; <span style="color: #66cc66;">&#125;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> -<span style="color: #CC0000;">1</span>;<br />
<span style="color: #66cc66;">&#125;</span>;</div>
</div>
</div>
<p></p>
<p><strong><br />
array.exists</strong><br />
 Devuelve true si el elemento se encuentra en el array, haciendo uso de la funcion indexOf</p>
<div class="syntax_hilite">
<div id="javascript-29">
<div class="javascript">Array.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">exists</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">indoexOf</span><span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span> != -<span style="color: #CC0000;">1</span>;<br />
<span style="color: #66cc66;">&#125;</span>;</div>
</div>
</div>
<p></p>
<p><strong>array.filter</strong><br />
 Devuelve un array que contiene solo los elementos para los que la función pasada como argumento devuelve true</p>
<div class="syntax_hilite">
<div id="javascript-30">
<div class="javascript">Array.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">filter</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>fn<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #003366; font-weight: bold;">var</span> array = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;<br />
&nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i = <span style="color: #CC0000;">0</span>; i &amp;lt;this.<span style="color: #006600;">length</span>; i++<span style="color: #66cc66;">&#41;</span> <span style="color: #000066; font-weight: bold;">if</span><span style="color: #66cc66;">&#40;</span>fn<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> array.<span style="color: #006600;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> array;<br />
<span style="color: #66cc66;">&#125;</span>;</div>
</div>
</div>
<p></p>
<p><strong>array.removeIndex</strong><br />
Elimina todos los elementos del array que están entre los índices from y to. Si solo se especifica valor para from, se elimina solo el elemento que se encuentra en ese índice.</p>
<div class="syntax_hilite">
<div id="javascript-31">
<div class="javascript">Array.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">removeIndex</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>from, to<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>from &amp;lt;<span style="color: #CC0000;">0</span><span style="color: #66cc66;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span>;<br />
&nbsp; <span style="color: #003366; font-weight: bold;">var</span> rest = <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">slice</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>to || from<span style="color: #66cc66;">&#41;</span> + <span style="color: #CC0000;">1</span> || <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">length</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">length</span> = from &amp;lt;<span style="color: #CC0000;">0</span> ? <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">length</span> + from : from;<br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">push</span>.<span style="color: #006600;">apply</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>, rest<span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span>;</div>
</div>
</div>
<p></p>
<p><strong>array.remove</strong><br />
Elimina un elemento del array, usando las funciones removeIndex  e indexOf</p>
<div class="syntax_hilite">
<div id="javascript-32">
<div class="javascript">Array.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">remove</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">removeIndex</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">indexOf</span><span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span>;</div>
</div>
</div>
<p></p>
<p><strong>array.execute</strong><br />
Ejecuta la función fn pasandole como argumento cada elemento del array<br />
si le pasamos el argument obj, se ejecutara la funcion fn como si perteneciese al objeto obj</p>
<div class="syntax_hilite">
<div id="javascript-33">
<div class="javascript">Array.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">execute</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>fn, owner<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i=<span style="color: #CC0000;">0</span>; i&lt;;this.<span style="color: #006600;">length</span>; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>owner<span style="color: #66cc66;">&#41;</span> fn.<span style="color: #006600;">call</span><span style="color: #66cc66;">&#40;</span>owner, <span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> != <span style="color: #3366CC;">'function'</span><span style="color: #66cc66;">&#41;</span> fn<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; <span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>array.foreach<br />
Ejecuta la función fn en cada elemento del array, pasandole como argumentos los elementos contenidos en el array args<br />
si le pasamos el argument obj, se ejecutara la funcion fn como si perteneciese al objeto obj</p>
<div class="syntax_hilite">
<div id="javascript-34">
<div class="javascript">Array.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">foreach</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>fn, args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i=<span style="color: #CC0000;">0</span>; i&lt;this.<span style="color: #006600;">length</span>; i++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; fn.<span style="color: #006600;">apply</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>, args<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; <span style="color: #66cc66;">&#125;</span><br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/extendiendo-el-objeto-array/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incluir código javascript en un documento XHTML</title>
		<link>http://seamcity.madeinxpain.com/archives/incluir-codigo-javascript-en-un-documento-xhtml</link>
		<comments>http://seamcity.madeinxpain.com/archives/incluir-codigo-javascript-en-un-documento-xhtml#comments</comments>
		<pubDate>Mon, 26 May 2008 11:01:17 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=43</guid>
		<description><![CDATA[Si estás trabajando con Seam, muy probablemente estés utilizando Facelets para la vista y páginas xhtml.
Si intentas incluir código javascript en un documento XHTML directamente puede que de algunos problemas con los símbolos <  ("menor que",&#38;lt;)  y &#038; (amperstand), ya que el navegador los intentará interpretar como partes de etiquetas xhtml y dará [...]]]></description>
			<content:encoded><![CDATA[<p>Si estás trabajando con Seam, muy probablemente estés utilizando Facelets para la vista y páginas xhtml.<br />
Si intentas incluir código javascript en un documento XHTML directamente puede que de algunos problemas con los símbolos <strong>< </strong> ("menor que",&amp;lt;)  y </strong><strong>&#038;</strong> (amperstand), ya que el navegador los intentará interpretar como partes de etiquetas xhtml y dará algún error de sintaxis.</p>
<p>Para evitar ésto podemos escribir nuestro javascript entre etiquetas CDATA. Ésta etiqueta lo que hace es indicarle al validador de XHTML que ignore todo lo que se encuentre en su interior. El problema es que algunos navegadores no entienden la etiqueta CDATA, por lo que deberemos comentar la etiqueta CDATA. De esta forma, si el navegador no la sabe interpretar, la ignorará.</p>
<div class="syntax_hilite">
<div id="javascript-36">
<div class="javascript">&lt;script type=<span style="color: #3366CC;">"text/javascript"</span>&gt;<br />
<span style="color: #009900; font-style: italic;">//&lt;![CDATA[</span></p>
<p>&nbsp;<span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"&lt;Ésto &amp; y ésto &lt;&lt;&nbsp; es compatible con XHTML&gt;"</span><span style="color: #66cc66;">&#41;</span>;</p>
<p><span style="color: #009900; font-style: italic;">//]]&gt;</span><br />
&lt;/script&gt;</div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/incluir-codigo-javascript-en-un-documento-xhtml/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bloquear la pantalla con javascript</title>
		<link>http://seamcity.madeinxpain.com/archives/bloquear-la-pantalla-con-javascript</link>
		<comments>http://seamcity.madeinxpain.com/archives/bloquear-la-pantalla-con-javascript#comments</comments>
		<pubDate>Fri, 23 May 2008 11:48:15 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/?p=38</guid>
		<description><![CDATA[Hay ocasiones en las aplicaciones web que nos interesa bloquear la pantalla del navegador para impedir al usuario interactuar con la aplicación.
Un ejemplo es durante una llamada ajax que tarda un cierto tiempo y queremos mostrar el típico mensaje "loading" y poner el fondo con un tono oscuro, o para pedir nombre de usuario y [...]]]></description>
			<content:encoded><![CDATA[<p>Hay ocasiones en las aplicaciones web que nos interesa bloquear la pantalla del navegador para impedir al usuario interactuar con la aplicación.<br />
Un ejemplo es durante una llamada ajax que tarda un cierto tiempo y queremos mostrar el típico mensaje "loading" y poner el fondo con un tono oscuro, o para pedir nombre de usuario y contraseña.</p>
<p>Una solución simple para este problema consiste en poner un div que ocupe toda la pantalla y se sitúe por encima del resto de componentes. Así todos los clicks del ratón se realizarán sobre nuestro div en vez de sobre el botón que se ve debajo.<br />
Después, mediante javascript muestras el div bloqueador. No te olvides de proporcionar alguna forma para quitar este elemento.<br />
Estas propiedades del div se pueden especificar en una clase css</p>
<div class="syntax_hilite">
<div id="css-39">
<div class="css"><span style="color: #6666ff;">.blocker </span><span style="color: #66cc66;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">position</span>: <span style="color: #993333;">absolute</span>;<br />
<span style="color: #000000; font-weight: bold;">top</span>: 0px;<br />
<span style="color: #000000; font-weight: bold;">left</span>: 0px;<br />
<span style="color: #000000; font-weight: bold;">height</span>:<span style="color: #cc66cc;">100</span>%;<br />
<span style="color: #000000; font-weight: bold;">width</span>:<span style="color: #cc66cc;">100</span>%;&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/* hacemos que ocupe toda la pantalla a cualquier resolución*/</span><br />
<span style="color: #000000; font-weight: bold;">z-index</span>: <span style="color: #cc66cc;">50</span>;&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">/* lo colocamos por encima del resto de componentes*/</span><br />
<span style="color: #000000; font-weight: bold;">background</span>: <span style="color: #993333;">url</span><span style="color: #66cc66;">&#40;</span>b.png<span style="color: #66cc66;">&#41;</span> <span style="color: #993333;">repeat</span>;&nbsp; <span style="color: #808080; font-style: italic;">/*Color de fondo semitransparente*/</span><br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Si queremos añadir algun mensaje o una ventana con la que se desee interactuar, solo tenemos que colocar un div que quede por encima del anterior.</p>
<div class="syntax_hilite">
<div id="css-40">
<div class="css">.popup<span style="color: #66cc66;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">z-index</span>: <span style="color: #cc66cc;">100</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;">/* un z-index mayor al del blocker */</span><br />
<span style="color: #000000; font-weight: bold;">background-color</span>: <span style="color: #993333;">white</span>;&nbsp; <span style="color: #808080; font-style: italic;">/* Un color de fondo para que se vea sobre la capa anterior*/</span><br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p><a href="http://seamcity.madeinxpain.com/examples/uiblock-javascript.html"  target="_blank">Ver ejemplo de bloqueo de pantalla</a></p>
<p>Si usas jQuery (o librerias similares) dispondrás de buenos plugins (como <a href="http://famspam.com/facebox" onclick="javascript:pageTracker._trackPageview('article_out/famspam.com');" target="_blank">facebox</a>) para hacer esto mismo con muchas mas opciones y efectos.</p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/bloquear-la-pantalla-con-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>checkbox y evento onclick</title>
		<link>http://seamcity.madeinxpain.com/archives/checkbox-y-evento-onclick</link>
		<comments>http://seamcity.madeinxpain.com/archives/checkbox-y-evento-onclick#comments</comments>
		<pubDate>Wed, 19 Mar 2008 16:35:32 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/archives/35</guid>
		<description><![CDATA[Si alguna vez has usado la funcion toggle de jQuery con un checkbox habrás comprobado que las acciones del toggle se ejecutan, pero el checkbox no se marca (o no se desmarca).
Esto ocurre porque estamos reemplazando el comportamiento nativo del checkbox por el nuestro propio. Para evitar este comportamiento, debemos registrar el listener con el [...]]]></description>
			<content:encoded><![CDATA[<p>Si alguna vez has usado la funcion <em>toggle</em> de jQuery con un checkbox habrás comprobado que las acciones del <em>toggle</em> se ejecutan, pero el checkbox no se marca (o no se desmarca).<br />
Esto ocurre porque estamos reemplazando el comportamiento nativo del checkbox por el nuestro propio. Para evitar este comportamiento, debemos registrar el listener con el evento <em>onchange</em> o el evento<em> onclick.</em> (NOTA: Parece ser que internet explorer 6 no maneja bien el evento onchange)<em>.<br />
</em></p>
<p>Para solucionar este problemilla, podemos escribir nuestra propia función toggle para checkboxes:</p>
<div class="syntax_hilite">
<div id="javascript-42">
<div class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'#checkbox'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">click</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">checked</span><span style="color: #66cc66;">&#41;</span> <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'checkbox activado'</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'checkbox desactivado'</span><span style="color: #66cc66;">&#41;</span> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<br />
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p><a href="http://seamcity.madeinxpain.com/examples/jquery-checkbox.html"  target="_blank">Aqui</a> puedes ver un ejemplo completo</p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/checkbox-y-evento-onclick/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XML, tildes y javascript</title>
		<link>http://seamcity.madeinxpain.com/archives/xml-tildes-y-javascript</link>
		<comments>http://seamcity.madeinxpain.com/archives/xml-tildes-y-javascript#comments</comments>
		<pubDate>Wed, 19 Mar 2008 16:22:05 +0000</pubDate>
		<dc:creator>Tes</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://seamcity.madeinxpain.com/archives/34</guid>
		<description><![CDATA[Al leer un documento xml codificado en UTF-8 que contiene tildes o eñes con javascript, las interpretará como simbolos extraños .
Para solucionar este problema se debe establecer la codificacion en latin9 (ISO-8859-15), modificando la primera linea del archivo XML.


&#60;?xml version="1.0" encoding="ISO-8859-15"?&#62;



]]></description>
			<content:encoded><![CDATA[<p>Al leer un documento xml codificado en UTF-8 que contiene tildes o eñes con javascript, las interpretará como simbolos extraños .<br />
Para solucionar este problema se debe establecer la codificacion en latin9 (ISO-8859-15), modificando la primera linea del archivo XML.</p>
<div class="syntax_hilite">
<div id="xml-44">
<div class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">"1.0"</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">"ISO-8859-15"</span>?<span style="font-weight: bold; color: black;">&gt;</span></span></div>
</div>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://seamcity.madeinxpain.com/archives/xml-tildes-y-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

