<?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>Codigo Manso &#187; Javascript</title>
	<atom:link href="http://www.codigomanso.com/es/category/programacion/javascript-programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codigomanso.com</link>
	<description>Programación, informática y tecnología</description>
	<lastBuildDate>Sun, 21 Aug 2011 10:54:29 +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>Truco Manso: formatear con ceros al principio de un número en javascript</title>
		<link>http://www.codigomanso.com/es/2010/07/simple-javascript-formatting-zero-padding/</link>
		<comments>http://www.codigomanso.com/es/2010/07/simple-javascript-formatting-zero-padding/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 17:08:33 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[formatting]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[padding]]></category>
		<category><![CDATA[truco manso]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=907</guid>
		<description><![CDATA[Hasta ayer echaba en falta un método sencillo y legible para rellenar con ceros cualquier número o cadena en javascript.
Un ejemplo típico es cuando quieres mostrar la hora y quieres que el formato sea hh:mm. No hay ningún problema cuando son las 12:40, pero si es la una y cinco, se muestra 1:5 en vez [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hasta ayer echaba en falta un método sencillo y legible para rellenar con ceros cualquier número o cadena en javascript.</p>
<p style="text-align: justify;">Un ejemplo típico es cuando quieres mostrar la hora y quieres que el formato sea hh:mm. No hay ningún problema cuando son las 12:40, pero si es la una y cinco, se muestra 1:5 en vez de 01:05. Lo mismo pasa con las fechas y en innumerables situaciones.</p>
<p style="text-align: justify;">Ayer me he encontré una solución que me parece la mejor que he visto hasta la fecha.</p>
<p style="text-align: justify;">Normalmente, tratándose de un cero, uno haría algo como:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">h <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>h <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> h<span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> h<span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify;">Esto no es feo del todo, pero tampoco es elegante. Y que pasa si queremos 3 ceros? Podríamos hacer algo como:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">h <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>h <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span>h <span style="color: #339933;">&gt;=</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> h<span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;00&quot;</span> <span style="color: #339933;">+</span> h<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> h<span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify;">Este código en un if/else seguro que queda más claro, pero aún así esto es una guarrada. Lo normal sería hacerse una función que rellene con ceros (o con cualquier otro caracter), y usar esa función.</p>
<p style="text-align: justify;">Una vez vista la solución más típica y feucha, es el momento de ver la solución mágica:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> h<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #006600; font-style: italic;">// devolverá &quot;01&quot; si h=1; &quot;12&quot; si h=12</span>
<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;00&quot;</span> <span style="color: #339933;">+</span> h<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// &quot;001&quot; si h=1; &quot;012&quot; si h=12;&quot;123&quot; si h = 123</span></pre></div></div>

<p style="text-align: justify;">Lo que hace el código de arriba es concatenar &#8220;00&#8243; con el número (por ejemplo &#8220;00&#8243; + 12 = &#8220;0012&#8243;) y luego cogemos los 3 últimos caracteres empezando desde el final (de ahí el -3). Y los 3 últimos caracteres son: &#8220;012&#8243;</p>
<p style="text-align: justify;">No se a vosotros, pero yo cuando vi esta solución se me iluminó el cielo. ¡¡Que fácil!!</p>
<p style="text-align: justify;">Por cierto, también se puede usar para rellenar con espacios o con lo que se quiera.</p>
<p>Fuentes:</p>
<ul>
<li><a href="http://gugod.org/2007/09/padding-zero-in-javascript.html">Padding zero in Javascript</a></li>
<li><a href="http://dev.enekoalonso.com/2010/07/20/little-tricks-string-padding-in-javascript/">Little tricks: string padding in Javascript</a> en el blog de Eneko Alonso</li>
</ul>
<p><b>Update:</b> <a href="http://milan.adamovsky.com/">Milan Adamovsky</a> ha creado una página web en <a href="http://jsperf.com/zero-padding">http://jsperf.com/zero-padding</a> donde se puede ver el rendimiento de distintas funciones para hacer padding</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2010/07/simple-javascript-formatting-zero-padding/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>mansofk: el super mega ultra lightweight js framework</title>
		<link>http://www.codigomanso.com/es/2010/05/mansofk-el-super-mega-ultra-lightweight-js-framework/</link>
		<comments>http://www.codigomanso.com/es/2010/05/mansofk-el-super-mega-ultra-lightweight-js-framework/#comments</comments>
		<pubDate>Tue, 04 May 2010 19:01:40 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[mooTools]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js framework]]></category>
		<category><![CDATA[lightweight]]></category>
		<category><![CDATA[mansofk]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=869</guid>
		<description><![CDATA[Me hacía falta un framework de javascript que fuese capaz de cambiar el CSS de los elementos, que fuese capaz de hacer peticiones AJAX,  capaz de cargar javascripts o CSS externos, capaz de añadir o cambiar HTML sobre la marcha, capaz de capturar eventos, capaz de realizar animaciones y capaz de evitar colisiones con otros [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Me hacía falta un framework de javascript que fuese capaz de cambiar el CSS de los elementos, que fuese capaz de hacer peticiones AJAX,  capaz de cargar javascripts o CSS externos, capaz de añadir o cambiar HTML sobre la marcha, capaz de capturar eventos, capaz de realizar animaciones y capaz de evitar colisiones con otros frameworks o incluso con sigo mismo, y además, que fuera superligero y funcionara en IE6+, FF, Safari, Chrome y Opera.</p>
<p style="text-align: justify;">Al final, después de cansarme de buscar y buscar, lo he programado yo, y en honor al blog, he decidido llamarlo <strong>manso framework</strong>. <strong>mansofk</strong> para los amigos.</p>
<p style="text-align: justify;">Al final he conseguido meter toda esta funcionalidad en tan sólo 1.5KB.</p>
<p>Las funcionalidades principales son:</p>
<ul>
<li>Fácil renombrar el framework para evitar colisiones</li>
<li>Soporta encadenamiento de llamadas</li>
<li>Soporta la carga de componentes externos de forma dinámica
<ul>
<li>Soporta cargar CSS externos dinámicamente</li>
<li>Soporta cargar javascript externos dinámicamente</li>
</ul>
</li>
<li>Manipulaciones DOM sencillas
<ul>
<li>Seleccionar elementos por ID</li>
<li>Añadir elementos</li>
<li>Reemplazar elementos</li>
</ul>
</li>
<li>Manipular el estilo CSS de los elementos
<ul>
<li>Obtener una propiedad del estilo actual de un elemento</li>
<li>Cambiar una propiedad del estilo de un elemento</li>
<li>Cambiar varias propiedades a la vez</li>
</ul>
</li>
<li>Animaciones CSS sencillas
<ul>
<li>Soporta varios atributos a la vez</li>
<li>Varios parametros, entre ellos la duración e incluso los frames por segundo</li>
<li>Es posible seleccionar la función linear y la cúbica</li>
</ul>
</li>
<li>Soporte de eventos
<ul>
<li>bind</li>
<li>unbind</li>
</ul>
</li>
<li>Llamadas AJAX
<ul>
<li>Con POST</li>
<li>Con GET</li>
<li>Con soporte XML</li>
<li>Con soporte JSON</li>
<li>Con soporte texto plano</li>
</ul>
</li>
<li>Superligero
<ul>
<li>3.3 KB minified</li>
<li>1.5 KB gzipped!</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">Sois libres de usar este framework para lo que os venga en gana, pero no me responsabilizo de nada.</p>
<p style="text-align: justify;">A continuación teneis la versión sin comprimir, y la versión reducida con <a href="http://closure-compiler.appspot.com/home" target="_blank">Google Closure Compiler</a>:</p>
<ul style="text-align: justify;">
<li style="text-align: justify;"><a href="http://www.codigomanso.com/archives/mansofk/mansofk-1.0.min.js" target="_self">mansofk-1.0.min.js</a> (3.3 KB para usar en producción, si usas gzip ocupa sólo 1.5KB)</li>
<li style="text-align: justify;"><a href="http://www.codigomanso.com/archives/mansofk/mansofk-1.0.js" target="_self">mansofk-1.0.js</a> (11KB para usar durante el desarrollo)</li>
</ul>
<p style="text-align: justify;">Ale, pues ya está. Lo suyo sería hacer  una demo, pero como ahora mismo tengo otras cosas que hacer, me lo dejo  para otra ocasión.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2010/05/mansofk-el-super-mega-ultra-lightweight-js-framework/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>[SOLUCIONADO] Uploadify y los problemas con las sessiones</title>
		<link>http://www.codigomanso.com/es/2010/03/uploadify-and-session-problems-solved/</link>
		<comments>http://www.codigomanso.com/es/2010/03/uploadify-and-session-problems-solved/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 09:10:09 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[uploadify]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=836</guid>
		<description><![CDATA[
Uploadify es un magnífico plugin para jQuery que te permite subir varios archivos a la vez mediante flash, de forma totalmente transparente (podeis ver una demo en este enlace).
Realmente, la gran ventaja que yo le veo no es la de subir varios archivos a la vez,esto ya se puede hacer con javascript a pelo, la [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.uploadify.com"><img class="aligncenter" title="Uploadify" src="http://www.uploadify.com/_images/uploadify-logo.jpg" alt="" width="560" height="90" /></a></p>
<p style="text-align: justify;"><a href="http://www.uploadify.com" target="_blank">Uploadify</a> es un magnífico plugin para jQuery que te permite subir varios archivos a la vez mediante flash, de forma totalmente transparente (podeis ver una <a href="http://www.uploadify.com/demo/" target="_blank">demo en este enlace</a>).</p>
<p style="text-align: justify;">Realmente, la gran ventaja que yo le veo no es la de subir varios archivos a la vez,esto ya se puede hacer con javascript a pelo, la gran ventaja es que añade una barra de progreso para que el usuario no se desespere.</p>
<p style="text-align: justify;">Además de subir archivos, también se pueden mandar otros datos a la vez que se suben las imágenes (usando <a href="http://www.uploadify.com/documentation/" target="_blank">scriptData</a>). Lo cual puede ser muy útil si se quiere por ejemplo, mandar los datos de un formulario a la vez que se sube un archivo.</p>
<p style="text-align: justify;">El gran inconveniente de uploadify, es que manda cada archivo por separado. Es decir, si quieres subir 30 archivos, manda cada archivo en una petición HTTP distinta. El problema no es la velocidad, puesto que se pueden paralelizar las subidas, el problema son las distintas peticiones si tienes que adjuntar datos. El hecho de que sean distintas peticiones complica un poco la lógica en el servidor en según que casos&#8230;</p>
<p style="text-align: justify;">En fin, recientemente he usado uploadify en un proyecto donde los usuarios debían estar registrados para poder subir archivos. Claro, registrados y logueados en el sistema. El tema es que tras implementar la subida de archivos, no funcionaba&#8230; y no funcionaba&#8230; y casi me vuelvo loco, hasta que me di cuenta de que uploadify no envia las cookies, y  lógicamente sin cookies el servidor no tiene forma de cargar las variables de sesión, y por tanto, de saber qué usuario está intentando subir qué, y dado que el servidor no tiene forma de saber si es o no un usuario registrado, devuelve un mensaje de error. Total, que una vez detectado el problema de las cookies la solución ha sido simple.</p>
<p style="text-align: justify;">La solución para mantener la sesión con uploadify (y en general cuando el cliente no tiene cookies), es añadir a la URL de subida el nombre de sesión y el identificador de sesión.</p>
<p style="text-align: justify;">En PHP añadir esto a la URL sería algo, tal que:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$url</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'?'</span> <span style="color: #339933;">.</span> <span style="color: #990000;">session_name</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'='</span> <span style="color: #339933;">.</span> <span style="color: #990000;">session_id</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Una vez hecho esto, problema resuelto <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2010/03/uploadify-and-session-problems-solved/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>Efecto de click para jQuery</title>
		<link>http://www.codigomanso.com/es/2010/02/click-effect-in-javascript-for-jquery/</link>
		<comments>http://www.codigomanso.com/es/2010/02/click-effect-in-javascript-for-jquery/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 14:57:52 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[effect]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=823</guid>
		<description><![CDATA[Hoy he estado haciendo unos cuantos experimentos con javascript. La verdad es que no he llegado a donde quería llegar, pero voy a asumir que es debido a que mi capacidad de diseño está atrofiada (y por suerte compensada en otras habilidades).
En fin, lo que estaba intentando hacer es algo como un efecto de click. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Hoy he estado haciendo unos cuantos experimentos con javascript. La verdad es que no he llegado a donde quería llegar, pero voy a asumir que es debido a que <a href="http://www.codigomanso.com/es/2009/03/pensamientos-sobre-diseno-y-usabilidad">mi capacidad de diseño está atrofiada</a> (y por suerte compensada en otras habilidades).</p>
<p style="text-align: justify;">En fin, lo que estaba intentando hacer es algo como un efecto de click. Me explico. Lo que quería que ocurriera, es que cuando el usuario hiciera click en un enlace, se produjera como una especie de linea de expansión. Pongo un ejemplo. Has visto el tipico anuncio de la Wii, donde al principio aparecen como tres o cuatro círculos concéntricos que se dispersan hasta desaparecer? Pues algo así, pero para cuando el usuario hiciera click con el ratón en una web.</p>
<p style="text-align: justify;">Al final de trastear un rato, hacer unos cuantos experimentos con imágenes, y seguir trasteando con animaciones sencillas, creo que he llegado a una primera aproximación que mas o menos se parece a lo que yo quería.</p>
<ul>
<li><a href="http://www.codigomanso.com/archives/html/click-simulator-example/index.html" target="_blank">Ver el efecto en vivo y en directo</a> (demo)</li>
<li><a href="http://www.codigomanso.com/archives/html/click-simulator-example/jSimulateClick.js">Descargar el plugin de jSimulateClick </a></li>
</ul>
<p>Básicamente, el ejemplo tiene 2 fragmentos interesantes (tampoco hay más en el html):</p>
<p>El primer fragmento es el que asocia el evento de click a todos los elementos que tienen la clase &#8216;clickable-round&#8217;. Cuando hagas click dentro de un elemento de esa clase, aparecerá un círculo que se irá difuminando.
</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.clickable-round'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 $<span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">currentTarget</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">jSimulateClick</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">pageX</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> event.<span style="color: #660066;">pageY</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'round'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>          
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>El segundo fragmento, asocia el evento de click a los elementos de la clase &#8216;clickable-square&#8217;. Cuando hagas click en cualquiera de estos elementos, el efecto será similar al anterior, pero en vez de mostrar un círculo, mostará un rectángulo que va, desde donde hayas hecho click, hasta cubrir el área del elemento en cuestión:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.clickable-square'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $<span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">currentTarget</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">jSimulateClick</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">pageX</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> event.<span style="color: #660066;">pageY</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>          
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Si quieres trastear el plugin, los parámetros con los que se puede trastear son el color del borde, el tamaño inicial del borde, la duración de la animación, &#8230;</p>
<p>Este javascript se puede usar para aplicaciones personales, comerciales y para lo que se quiera.</p>
<p>Finalmente, agradecería cualquier comentario para mejorar el efecto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2010/02/click-effect-in-javascript-for-jquery/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>jQuery 1.4.1 está fuera</title>
		<link>http://www.codigomanso.com/es/2010/01/jquery-1-4-1-esta-fuera/</link>
		<comments>http://www.codigomanso.com/es/2010/01/jquery-1-4-1-esta-fuera/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 12:33:44 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=818</guid>
		<description><![CDATA[Unas semanas después de que hayan sacado jQuery 1.4, acaba de salir una nueva actualización de este fantástico framework para javascript.
La nueva versión de jQuery 1.4.1 soluciona algunos bugs e incluye algunas mejoras.
Descárgarte jQuery 1.4.1 y écharle un vistazo a las release notes.
]]></description>
			<content:encoded><![CDATA[<p>Unas semanas después de que hayan sacado jQuery 1.4, acaba de salir una nueva actualización de este fantástico framework para javascript.</p>
<p>La nueva versión de jQuery 1.4.1 soluciona algunos bugs e incluye algunas mejoras.</p>
<p><a href="http://code.jquery.com/jquery-1.4.1.min.js">Descárgarte jQuery 1.4.1</a> y écharle un vistazo a las <a href="http://jquery14.com/day-12/jquery-141-released" target="_blank">release notes</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2010/01/jquery-1-4-1-esta-fuera/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>jcontroller: Controlador para javascript con jQuery</title>
		<link>http://www.codigomanso.com/es/2010/01/jcontroller-controlador-para-javascript-con-jquery/</link>
		<comments>http://www.codigomanso.com/es/2010/01/jcontroller-controlador-para-javascript-con-jquery/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 09:32:49 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jcontroller]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=809</guid>
		<description><![CDATA[Hace tiempo que no escribo, así que he pensado, voy a coger (agarrar para los argentinos) algo que haya hecho en los últimos días para algún proyecto, y voy a hacer un post, que estoy perdiendo usuarios, y esto no se puede permitir :p
El caso es que últimamente he notado que el código en javascript [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo que no escribo, así que he pensado, voy a coger (agarrar para los argentinos) algo que haya hecho en los últimos días para algún proyecto, y voy a hacer un post, que estoy perdiendo usuarios, y esto no se puede permitir :p</p>
<p>El caso es que últimamente he notado que el código en javascript que estaba escribiendo era un poco caotico, sobretodo cuando en la página había varios eventos, etc&#8230; Si comprendes lo que quiero decir, es que es un buen momento de que dejes tu también de hacerlo <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
<p>Total, que me dije: &#8220;tio, puedes hacer dos cosas&#8221;</p>
<ul>
<li>Puedes buscarte un buen controlador o plugin para jQuery (<a href="http://www.bennadel.com/projects/cormvc-jquery-framework.htm">CorMVC</a>),  o incluso buscar un framework como <a style="color: #2200cc;" onmousedown="return clk(this.href,'','','res','1','','0CAoQFjAA')" href="http://javascriptmvc.com/">JavaScriptMVC</a> o <a href="http://jamal-mvc.com/">Jamal</a></li>
<li>O puedes cometer la estupidez de hacer tu propio controlador para javascript</li>
</ul>
<p>El lector avispado se habrá dado cuenta de lo estúpido que soy.</p>
<p>Pues nada, os presento <a href="http://www.codigomanso.com/archives/html/jcontroller/jcontroller.js">jcontroller</a> y su <a href="http://www.codigomanso.com/archives/html/jcontroller/jcontroller.min.js">versión minificada</a> (con <a href="http://yuilibrary.com/downloads/#yuicompressor">yuicompressor</a>).</p>
<p>Tiene tests (que no incluyo), pero básicamente se pasan en Firefox, Chrome e Internet Explorer. Un segundo que no me cuesta nada&#8230; también funciona en Opera. Vale, pues mira por donde que parece que se lleva bien con los browsers (asumo que funciona en Safari).</p>
<p>Entremos en materia:</p>
<p><strong><span style="text-decoration: underline;">¿En qué consiste jcontroller?</span></strong></p>
<p>Básicamente sirve para no tener una maraña de código y <strong>controlar</strong> un poco las acciones que realizar según los eventos del usuario (normalmente los clicks).</p>
<p>Como contar más cosas es una tontería, os voy a enseñar un ejemplo y ya cada cual que haga lo que le parezca. En este momento es cuando yo paro de escribir el post para hacer el ejemplo en mi ordenador. Este post ha surgido tan repentinamente que no tenía nada preparado&#8230; <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Vale, el ejemplo chorra ya está preparado, sólo comento lo principal:</p>
<ul>
<li>Nada se ejecuta sólo, hay que iniciar el controlador con  la función &#8220;init&#8221;. Si le das el nombre &#8220;controller&#8221; pues &#8220;controller.init()&#8221;</li>
<li>El controlador ejecutará la función &#8216;_init&#8217; que hayamos definido en nuestra implementación, al principio.</li>
<li>Las funciones que empiezan con &#8216;_&#8217; son privadas y no pueden ser ejecutadas desde fuera (excepto _init, _default y _clear)</li>
<li>El controlador automáticamente, cuando se carga, mira lo que hay en la parte de hash &#8216;#&#8217; de la URL, y llama a la función que considere apropiada</li>
<li>Aunque ahora mismo funciona todo para detectar los enlaces tipo &#8216;#whatever&#8217;, se puede implementar el &#8220;trigger controller&#8221; que quieras, devolviendo una función en tu implementación de &#8216;_init&#8217; (ignora este parrafo de momento)</li>
<li>Se pueden definir tantos controladores como quieras, cada uno es independiente a los demás, aunque si todos usan el mismo &#8220;trigger controller&#8221; todos se van a ejecutar a la vez (ignora este parrafo de momento)</li>
</ul>
<p>Aquí os dejo los enlaces principales:</p>
<ul>
<li><a href="http://www.codigomanso.com/archives/html/jcontroller/examples/jcontroller01.html" target="_blank">Ejemplo</a></li>
<li><a href="http://www.codigomanso.com/archives/html/jcontroller/examples/jcontroller01.html#message-1" target="_self">Ejemplo#message-1</a></li>
<li><a href="http://www.codigomanso.com/archives/html/jcontroller/examples/jcontroller01.html#message-2" target="_blank">Ejemplo#message-2</a></li>
</ul>
<p>Realmente el ejemplo es muy chorra, jcontroller en sí es muy chorra, echadle un vistazo.</p>
<p><strong>Nota:</strong> Ahora mismo usa jQuery, pero no creo que lleve más de 10 minutos cambiarlo por otro framework</p>
<p>Finalmente os vuelvo a poner los enlaces, para quien se lo quiera descargar:</p>
<ul>
<li><a href="http://www.codigomanso.com/archives/html/jcontroller/jcontroller.js">jcontroller.js</a> (6.6 KB)</li>
<li><a href="http://www.codigomanso.com/archives/html/jcontroller/jcontroller.min.js">jcontroller.min.js</a> (1.2 KB)</li>
<li>Si lo comprimes con gzip son sólo 552 bytes :p</li>
</ul>
<p>Pues nada más que contar por el momento.</p>
<p>Las críticas constructivas son bienvenidas y las destructivas ignoradas.</p>
<p>Un saludo <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2010/01/jcontroller-controlador-para-javascript-con-jquery/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Sale jQuery 1.3.2, solucionando bugs</title>
		<link>http://www.codigomanso.com/es/2009/02/sale-jquery-132-solucionando-bugs/</link>
		<comments>http://www.codigomanso.com/es/2009/02/sale-jquery-132-solucionando-bugs/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 11:57:25 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery 1.3.2]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=575</guid>
		<description><![CDATA[Acaban de publicar la versión 1.3.2 de jQuery, que viene a solucionar varios bugs y mejorar el rendimiento en algunas partes.
Los cambios más importantes son:

 Elements are now returned in document order.
 .live() can now prevent bubbling.
 :visible/:hidden are now significantly faster.
 As are all the width/height methods.
 Selectors are much faster in Internet Explorer.
 [...]]]></description>
			<content:encoded><![CDATA[<p>Acaban de publicar la versión 1.3.2 de jQuery, que viene a solucionar varios bugs y mejorar el rendimiento en algunas partes.</p>
<p>Los cambios más importantes son:</p>
<ul>
<li> Elements are now returned in document order.</li>
<li> .live() can now prevent bubbling.</li>
<li> :visible/:hidden are now significantly faster.</li>
<li> As are all the width/height methods.</li>
<li> Selectors are much faster in Internet Explorer.</li>
<li> appendTo/etc. have had a slight API tweak.</li>
</ul>
<p>Así que ya sabeis, hay que actualizarse <img src='http://www.codigomanso.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Enlaces:</p>
<ul>
<li><a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js" target="_blank">Descargar jQuery 1.3.2 minified</a></li>
<li><a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.js" target="_blank">Descargar jQuery 1.3.2</a></li>
<li><a href="http://blog.jquery.com/2009/02/20/jquery-132-released/" target="_blank">Anuncio del release en el blog oficial</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2009/02/sale-jquery-132-solucionando-bugs/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Donde está el cursor?</title>
		<link>http://www.codigomanso.com/es/2009/02/where-is-the-cursor-or-cursor-in-a-textarea-or-input/</link>
		<comments>http://www.codigomanso.com/es/2009/02/where-is-the-cursor-or-cursor-in-a-textarea-or-input/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 09:13:28 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[caret]]></category>
		<category><![CDATA[cursor]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=548</guid>
		<description><![CDATA[Buscando y buscando, me acabo de encontrar con una web que tiene un ejemplo muy interesante y que nos dice dónde está el cursor en un input o textarea en cada momento, y además permite saber cual es el texto seleccionado (si es que lo hay).
La verdad es que no es algo que a uno [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://javascript.nwbox.com/cursor_position/" style="float:left; margin: 0 8px 4px 0;"><img src="http://www.codigomanso.com/wp-content/uploads/2009/02/where-is-the-cursor.png" alt="Where is the cursor?" title="Where is the cursor?" width="300" height="290" class="alignnone size-full wp-image-552" /></a>Buscando y buscando, me acabo de encontrar con una web que tiene un ejemplo muy interesante y que nos dice <a href="http://javascript.nwbox.com/cursor_position/">dónde está el cursor en un input o textarea en cada momento</a>, y además permite saber cual es el texto seleccionado (si es que lo hay).</p>
<p>La verdad es que no es algo que a uno le haga falta todos los días, pero a mi me hacía falta y me ha resuelto el problema.</p>
<p>En el ejemplo que hay en dicha página se usan las funciones <b>getSelectionStart</b> y <b>getSelectionEnd</b>. La primera nos dice donde está el cursor, mientras que la segunda nos dice dónde finaliza la selección (siempre y cuando getSelectionEnd devuelva un valor distinto a getSelectionStart).</p>
<p>A continuación teneis estas dos funciones:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> getSelectionStart<span style="color: #009900;">&#40;</span>o<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">createTextRange</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #003366; font-weight: bold;">var</span> r <span style="color: #339933;">=</span> document.<span style="color: #660066;">selection</span>.<span style="color: #660066;">createRange</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">duplicate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   r.<span style="color: #660066;">moveEnd</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'character'</span><span style="color: #339933;">,</span> o.<span style="color: #660066;">value</span>.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>r.<span style="color: #660066;">text</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> o.<span style="color: #660066;">value</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
   <span style="color: #000066; font-weight: bold;">return</span> o.<span style="color: #660066;">value</span>.<span style="color: #660066;">lastIndexOf</span><span style="color: #009900;">&#40;</span>r.<span style="color: #660066;">text</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> o.<span style="color: #660066;">selectionStart</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> getSelectionEnd<span style="color: #009900;">&#40;</span>o<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>o.<span style="color: #660066;">createTextRange</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #003366; font-weight: bold;">var</span> r <span style="color: #339933;">=</span> document.<span style="color: #660066;">selection</span>.<span style="color: #660066;">createRange</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">duplicate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 r.<span style="color: #660066;">moveStart</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'character'</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span>o.<span style="color: #660066;">value</span>.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #000066; font-weight: bold;">return</span> r.<span style="color: #660066;">text</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000066; font-weight: bold;">return</span> o.<span style="color: #660066;">selectionEnd</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2009/02/where-is-the-cursor-or-cursor-in-a-textarea-or-input/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Como detectar si Firebug está activo</title>
		<link>http://www.codigomanso.com/es/2009/01/como-ver-si-firebug-esta-activo/</link>
		<comments>http://www.codigomanso.com/es/2009/01/como-ver-si-firebug-esta-activo/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 14:48:48 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=498</guid>
		<description><![CDATA[Imagino que todos los desarrolladores web conocerán ya a Firebug. Ni que decir tiene que es una herramienta fundamental tanto para el diseño como para el desarrollo de una web.
Hay una sencilla forma de saber si Firebug está o no activo e incluso ver cual es la versión que el cliente tiene instalada. Se trata [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="aligncenter size-full wp-image-499" style="float:left; margin: 0 8px 4px 0;" title="firebug" src="http://www.codigomanso.com/wp-content/uploads/2009/01/firebug.jpg" alt="firebug" width="161" height="161" />Imagino que todos los desarrolladores web conocerán ya a <a href="http://getfirebug.com/" target="_blank">Firebug</a>. Ni que decir tiene que es una herramienta fundamental tanto para el diseño como para el desarrollo de una web.</p>
<p style="text-align: justify;">Hay una sencilla forma de saber si Firebug está o no activo e incluso ver cual es la versión que el cliente tiene instalada. Se trata básicamente de mirar si hay un DIV cuyo identificador es <strong>_firebugConsole</strong> y luego mirar el atributo <strong>FirebugVersion</strong>.</p>
<p style="text-align: justify;">El siguiente código en jquery muestra una alerta indicando que firebug está activo junto a la versión del cliente:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#_firebugConsole&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000066;">alert</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Firebug version &quot;</span> <span style="color: #339933;">+</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#_firebugConsole&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;FirebugVersion&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; is active&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p style="text-align: justify;">Pasar este código a cualquier otro framework es trivial, incluso se puede usar <strong>document.getElementById</strong> sin problemas.</p>
<p style="text-align: justify;">También hay otro modo de saber si firebug está activo, que es mirando si <strong>window.console.firebug</strong> está definido:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">console</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> window.<span style="color: #660066;">console</span>.<span style="color: #660066;">firebug</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000066;">alert</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Firebug is active&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2009/01/como-ver-si-firebug-esta-activo/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Obtener el PageRank de Google usando sólo javascript (II)</title>
		<link>http://www.codigomanso.com/es/2009/01/get-google-pagerank-using-only-javascript-ii/</link>
		<comments>http://www.codigomanso.com/es/2009/01/get-google-pagerank-using-only-javascript-ii/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 13:37:13 +0000</pubDate>
		<dc:creator>Pau Sanchez</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[page rank]]></category>

		<guid isPermaLink="false">http://www.codigomanso.com/es/?p=466</guid>
		<description><![CDATA[En el post anterior básicamente conté que esto de hacer peticiones cross-domain tiene muuuuchos problemas y que aún con los problemas que hay hoy iba a poner la solución para obtener el PageRank usando sólo javascript.
Claramente os tomé el pelo ;p
Que noooooooo!! A ver, todo lo que conté ayer es verdad. No se puede obtener [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.codigomanso.com/es/2009/01/obtener-el-pagerank-de-google-usando-solo-javascript-i/">En el post anterior</a> básicamente conté que esto de hacer peticiones cross-domain tiene muuuuchos problemas y que aún con los problemas que hay hoy iba a poner la solución para obtener el PageRank usando sólo javascript.</p>
<p style="text-align: justify;">Claramente os tomé el pelo ;p</p>
<p style="text-align: justify;">Que noooooooo!! A ver, todo lo que conté ayer es verdad. No se puede obtener el valor de las peticiones cross-domain a no ser que se usen algunos trucos (lo del proxy PHP, &#8230;), por lo que estrictamente hablando el código que obtiene el PageRank sigue sin saber cual es el Page Rank, sin embargo, sí puede mostrar ese PageRank adecuadamente, y eso es lo que hace el script.</p>
<p style="text-align: justify;">Por no andarme con rodeos, a continuación teneis un iframe donde podeis poner la web que querais y os mostrará su PageRank. Os prometo que sólo utiliza javascript (mas abajo el código).</p>
<p><iframe src="http://www.codigomanso.com/archives/html/get-pagerank/embed-pagerank.html" style="width: 100%; border: none; padding: 0; margin: 0; overflow: hidden; height: 10em;"></iframe></p>
<p style="text-align: center;">
<a href="http://www.codigomanso.com/archives/html/get-pagerank/pagerank.html" target="_blank">Ver la demo en una ventana nueva</a></p>
<p style="text-align: justify;">Básicamente lo que hace el script es calcular una serie de checksums de la página web introducida, actualizar unos campos en un formulario y enviar ese mismo formulario usando GET, y cargando el resultado devuelto por Google en un iframe. Ese iframe no se puede manipular de ninguna de las maneras, y si en vez de usar lo del iframe, se hace con AJAX, el resultado es el mismo.</p>
<p style="text-align: justify;">El truco, hack, chapuza o como lo querais llamar, es que el PageRank aparece después de una cadena (que por los tests realizados es &#8220;Rank_1:1:&#8221;). Lo que hace el script es calcular (mas o menos) donde estará el número de PR en esa cadena y mueve el iframe para que sólo salga ese último número.</p>
<p style="text-align: justify;">Debo reconocer que hacer esto con javascript es bastante chapuza, aunque la ventaja es que se sigue viendo el PR de una web, y todas las peticiones a Google corren a cargo de los propios navegadores web. Tampoco descarto que algunas personas puedan tener algún problema al visualizar el PR en su navegador, en tal caso el script necesitaría algunas adaptaciones y sois totalmente libres de hacerlas.</p>
<p style="text-align: justify;">A continuación teneis el código de <a href="http://www.codigomanso.com/archives/html/get-pagerank/getpagerank.js" target="_blank">getpagerank.js</a>, el script que calcula los checksums y obtiene el Page Rank de Google. Podeis echar un vistazo al código de <a href="http://www.codigomanso.com/archives/html/get-pagerank/pagerank.html" target="_blank">pagerank.html</a> para ver como funciona todo.</p>
</p>
<p style="text-align:justify;">Finalmente, por si alguien quiere embeder la página en su web, el código es el siguiente</p>
<p><code><br />
<iframe src="http://www.codigomanso.com/archives/html/get-pagerank/embed-pagerank.html" style="border:none;"></iframe><br />
</code></p>
<p style="text-align:justify;">Bueno, <b>¿Que os ha parecido?</b> ¿os ha gustado? ¿estais decepcionados? ¿lo veis demasiado chapuza?</p>
<hr/>
<p style="text-align: justify;"><b>Proximamente en CodigoManso</b> explicaré <strong><em>como hacer peticiones cross-domain con javascript y pasar información de unos servidores a otros </em></strong><em>(esto ya no será en plan chapuza, lo prometo).</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigomanso.com/es/2009/01/get-google-pagerank-using-only-javascript-ii/feed/</wfw:commentRss>
		<slash:comments>191</slash:comments>
		</item>
	</channel>
</rss>

