<?xml version="1.0" encoding="iso-8859-1"?>
<!-- generator="wordpress/1.5.1.3" -->
<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/"
>

<channel>
	<title>EsLoMas.com</title>
	<link>http://www.eslomas.com</link>
	<description>Informática, internet y algo del mundo real</description>
	<pubDate>Tue, 06 May 2008 06:42:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.1.3</generator>
	<language>en</language>

		<item>
		<title>Vulnerabilidades CSRF en aplicaciones web</title>
		<link>http://www.eslomas.com/index.php/archives/2007/03/12/vulnerabilidades-csrf-en-aplicaciones-web/</link>
		<comments>http://www.eslomas.com/index.php/archives/2007/03/12/vulnerabilidades-csrf-en-aplicaciones-web/#comments</comments>
		<pubDate>Mon, 12 Mar 2007 14:45:15 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>.NET</category>
	<category>PHP &amp; MySQL</category>
	<category>Otros Informática</category>
	<category>JavaScript</category>
	<category>Otros diseño web</category>
		<guid>http://www.eslomas.com/index.php/archives/2007/03/12/vulnerabilidades-csrf-en-aplicaciones-web/</guid>
		<description><![CDATA[Hoy voy a hablar sobre un tipo de vulnerabilidades de aplicaciones web llamado Cross Site Request Forgery (CSRF). Aunque su nombre guarde cierta similitud con otro tipo de vulnerabilidades como Cross Site Scripting (XSS), hay importantes diferencias entre ellas. A diferencia de los ataques XSS, que se basan en explotar la confianza que tiene un usuario en un determinado sitio web o aplicación, los ataques CSRF, también denominados como Cross Site Reference Forgery o XSRF, se basan en explotar la confianza que los sitios web tienen con sus usuarios.
    (more&#8230;) [1]


[1] http://www.eslomas.com/index.php/archives/2007/03/12/vulnerabilidades-csrf-en-aplicaciones-web/#more-317]]></description>
			<content:encoded><![CDATA[<p>Hoy voy a hablar sobre un tipo de vulnerabilidades de aplicaciones web llamado Cross Site Request Forgery (CSRF). Aunque su nombre guarde cierta similitud con otro tipo de vulnerabilidades como Cross Site Scripting (XSS), hay importantes diferencias entre ellas. A diferencia de los ataques XSS, que se basan en explotar la confianza que tiene un usuario en un determinado sitio web o aplicación, los ataques CSRF, también denominados como Cross Site Reference Forgery o XSRF, se basan en explotar la confianza que los sitios web tienen con sus usuarios.</p>
   <p> <a href="http://www.eslomas.com/index.php/archives/2007/03/12/vulnerabilidades-csrf-en-aplicaciones-web/#more-317"></a>
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2007/03/12/vulnerabilidades-csrf-en-aplicaciones-web/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Menú de ubicación hecho con una lista y CSS</title>
		<link>http://www.eslomas.com/index.php/archives/2006/08/23/menu-de-ubicacion-hecho-con-una-lista-y-css/</link>
		<comments>http://www.eslomas.com/index.php/archives/2006/08/23/menu-de-ubicacion-hecho-con-una-lista-y-css/#comments</comments>
		<pubDate>Wed, 23 Aug 2006 03:00:15 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>CSS</category>
	<category>JavaScript</category>
		<guid>http://www.eslomas.com/index.php/archives/2006/08/23/menu-de-ubicacion-hecho-con-una-lista-y-css/</guid>
		<description><![CDATA[Los menús de ubicación podemos verlos en muchas webs indicándonos en qué sección estamos y cuáles son las secciones superiores, permitiéndonos acceder mediante un clic a cualquiera de ellas, por lo que muchas veces se denominan menús de migas de pan o bread crumbs, en clara analogía al cuento infantil de Hansel y Gretel [1]. Son una de esas cosas que aun pese a su sencillez, marcan la diferencia muchas veces entre webs bien diseñados y estructurados, de los que no lo son, puesto que proporcionan al usuario en todo momento una representación visible de cuál es su ubicación en el web, permitiéndole moverse por él.
   
Portada del web --> página de sección --> página de subsección

   En las siguientes líneas voy a explicar cómo realizar estos menús mediante elementos &lt;li> y CSS.
    (more&#8230;) [2]


[1] http://es.wikipedia.org/wiki/Hansel_y_Gretel
[2] http://www.eslomas.com/index.php/archives/2006/08/23/menu-de-ubicacion-hecho-con-una-lista-y-css/#more-285]]></description>
			<content:encoded><![CDATA[<p>Los menús de ubicación podemos verlos en muchas webs indicándonos en qué sección estamos y cuáles son las secciones superiores, permitiéndonos acceder mediante un clic a cualquiera de ellas, por lo que muchas veces se denominan menús de <q>migas de pan</q> o <q>bread crumbs</q>, en clara analogía al cuento infantil de <a href="http://es.wikipedia.org/wiki/Hansel_y_Gretel" target="_blank" class="external">Hansel y Gretel</a>. Son una de esas cosas que aun pese a su sencillez, marcan la diferencia muchas veces entre webs bien diseñados y estructurados, de los que no lo son, puesto que proporcionan al usuario en todo momento una representación visible de cuál es su ubicación en el web, permitiéndole moverse por él.</p>
   <pre class="code">
Portada del web --> página de sección --> página de subsección
</pre>
   <p>En las siguientes líneas voy a explicar cómo realizar estos menús mediante elementos <code>&lt;li></code> y <acronym title="Cascading Style Sheets">CSS</acronym>.</p>
   <p> <a href="http://www.eslomas.com/index.php/archives/2006/08/23/menu-de-ubicacion-hecho-con-una-lista-y-css/#more-285"></a>
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2006/08/23/menu-de-ubicacion-hecho-con-una-lista-y-css/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Google publica la herramienta que utiliza para sus aplicaciones Ajax</title>
		<link>http://www.eslomas.com/index.php/archives/2006/05/17/google-web-toolkit-ajax/</link>
		<comments>http://www.eslomas.com/index.php/archives/2006/05/17/google-web-toolkit-ajax/#comments</comments>
		<pubDate>Wed, 17 May 2006 07:06:36 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>Otros Informática</category>
	<category>JavaScript</category>
		<guid>http://www.eslomas.com/index.php/archives/2006/05/17/google-web-toolkit-ajax/</guid>
		<description><![CDATA[Google acaba de publicar el Google Web Toolkit [1], un framework orientado a la creación de aplicaciones Ajax. Lo que puede resultar más novedoso de este framework es su forma de trabajo. En vez de escribir directamente código JavaScript y hacer las llamadas Ajax, con este toolkit programamos directamente en Java y posteriormente compilamos el código a Javascript.
   El toolkit se puede utilizar sobre cualquiera de los entornos habituales de desarrollo Java, como Eclipse o Netbeans, aparte de poder utilizar las herramientas habituales como JUnit o JProfiler. Todo esto permite crear aplicaciones basadas en Ajax de una forma más eficiente y menos propensa a errores, pudiéndose incluso depurar la aplicación en el entorno Java. 
   El toolkit dispone de un conjunto de widgets que podemos utilizar en nuestras aplicaciones, como paneles, pestañas, árboles, menús&#8230; Merece la pena también destacar algunas características interesantes que ofrece, como la comentada capacidad de depuración, gestión de la historia del navegador para que se puedan usar los botones de adelante y atrás en nuestra aplicación ajax, compatibilidad con los navegadores actuales y por supuesto, la posibilidad de incluir código Javascript propio.
   Y ahora pensando un poco más, ¿qué nos ofrece este toolkit realmente? Pues de primeras lo que se me ocurre es que pese a que los widgets ofrecidos sean pocos y no muy vistosos, aporta una nueva visión de cómo realizar aplicaciones Ajax, que puede ser muy ventajosa. Actualmente desarrollar una aplicación Ajax implica programar el lado del servidor, diseñar el html, y escribir todo el Javascript que controla el Html poniéndose en contacto con el servidor, todo ello muy entrelazado y relativamente complejo de independizar y controlar. Con este toolkit podríamos diseñar la aplicación teniendo en cuenta que vamos a hacer el lado servidor por ejemplo en PHP, definiendo un conjunto de servicios que se utilizarán posteriormente desde el navegador de los usuarios. De forma independiente podríamos diseñar el interfaz de usuario en Html y la lógica que lo controla mediante Java (o cualquier otro lenguaje llegado el caso), depurarlo, y una vez testeado compilarlo a Javascript. Habríamos conseguido principalmente simplificar el desarrollo del interfaz reutilizando componentes existentes, habríamos simplificado las comunicaciones con el servidor usando las capacidades RPC del toolkit, y tendríamos una aplicación mucho más estructurada y mantenible, a la vez que menos propensa a errores.


[1] http://code.google.com/webtoolkit/]]></description>
			<content:encoded><![CDATA[<p><img src="/upload/google.png" class="alignleft" />Google acaba de publicar el <a href="http://code.google.com/webtoolkit/" class="external" target="_blank">Google Web Toolkit</a>, un framework orientado a la creación de aplicaciones Ajax. Lo que puede resultar más novedoso de este framework es su forma de trabajo. En vez de escribir directamente código JavaScript y hacer las llamadas Ajax, con este toolkit programamos directamente en Java y posteriormente compilamos el código a Javascript.</p>
   <p>El toolkit se puede utilizar sobre cualquiera de los entornos habituales de desarrollo Java, como Eclipse o Netbeans, aparte de poder utilizar las herramientas habituales como JUnit o JProfiler. Todo esto permite crear aplicaciones basadas en Ajax de una forma más eficiente y menos propensa a errores, pudiéndose incluso depurar la aplicación en el entorno Java. </p>
   <p>El toolkit dispone de un conjunto de widgets que podemos utilizar en nuestras aplicaciones, como paneles, pestañas, árboles, menús&#8230; Merece la pena también destacar algunas características interesantes que ofrece, como la comentada capacidad de depuración, gestión de la historia del navegador para que se puedan usar los botones de adelante y atrás en nuestra aplicación ajax, compatibilidad con los navegadores actuales y por supuesto, la posibilidad de incluir código Javascript propio.</p>
   <p>Y ahora pensando un poco más, ¿qué nos ofrece este toolkit realmente? Pues de primeras lo que se me ocurre es que pese a que los widgets ofrecidos sean pocos y no muy vistosos, aporta una nueva visión de cómo realizar aplicaciones Ajax, que puede ser muy ventajosa. Actualmente desarrollar una aplicación Ajax implica programar el lado del servidor, diseñar el html, y escribir todo el Javascript que controla el Html poniéndose en contacto con el servidor, todo ello muy entrelazado y relativamente complejo de independizar y controlar. Con este toolkit podríamos diseñar la aplicación teniendo en cuenta que vamos a hacer el lado servidor por ejemplo en <acronym title="Hypertext PreProcessing">PHP</acronym>, definiendo un conjunto de servicios que se utilizarán posteriormente desde el navegador de los usuarios. De forma independiente podríamos diseñar el interfaz de usuario en Html y la lógica que lo controla mediante Java (o cualquier otro lenguaje llegado el caso), depurarlo, y una vez testeado compilarlo a Javascript. Habríamos conseguido principalmente simplificar el desarrollo del interfaz reutilizando componentes existentes, habríamos simplificado las comunicaciones con el servidor usando las capacidades <acronym title="Remote Procedure Call">RPC</acronym> del toolkit, y tendríamos una aplicación mucho más estructurada y mantenible, a la vez que menos propensa a errores.
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2006/05/17/google-web-toolkit-ajax/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Haga click para activar y usar este control</title>
		<link>http://www.eslomas.com/index.php/archives/2006/05/04/haga-click-para-activar-y-usar-este-control/</link>
		<comments>http://www.eslomas.com/index.php/archives/2006/05/04/haga-click-para-activar-y-usar-este-control/#comments</comments>
		<pubDate>Thu, 04 May 2006 07:18:24 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>JavaScript</category>
	<category>Otros diseño web</category>
		<guid>http://www.eslomas.com/index.php/archives/2006/05/04/haga-click-para-activar-y-usar-este-control/</guid>
		<description><![CDATA[Si utilizas el Internet Explorer para navegar puede que desde hace cosa de un mes veas el mensaje &#8220;Haga click para activar y usar este control&#8221;, o su versión en inglés, &#8220;Click to activate and use this control&#8221;, al pasar el ratón sobre controles ActiveX o Flash embebidos en las páginas web. En mi caso no me había percatado hasta hace unos días, ya que navego usualmente con Firefox [1], y utilizo el Explorer únicamente para comprobar que lo que desarrollo se ve correctamente.
   En realidad este mensaje es una muestra más de hasta donde puede llegar a ser pernicioso el tema de las patentes de software. Resulta que Microsoft llevaba bastante tiempo en juicios con una empresa llamada Eolas [2], que tiene la única licencia de utilización de una patente registrada por la Universidad de California, referente a la inclusión de plugins dentro de páginas web. Finalmente Microsoft ha sido condenada a pagar la friolera de 560 millones de dolares y se ha visto obligada a crear un parche para el explorer que modifica la carga de los plugin, entre ellos flash, de forma que el usuario no pueda interactuar con ellos hasta hacer click voluntariamente.
   
 (more&#8230;) [3]


[1] http://www.mozilla.com/firefox
[2] http://en.wikipedia.org/wiki/Eolas
[3] http://www.eslomas.com/index.php/archives/2006/05/04/haga-click-para-activar-y-usar-este-control/#more-267]]></description>
			<content:encoded><![CDATA[<p>Si utilizas el Internet Explorer para navegar puede que desde hace cosa de un mes veas el mensaje &#8220;Haga click para activar y usar este control&#8221;, o su versión en inglés, &#8220;Click to activate and use this control&#8221;, al pasar el ratón sobre controles ActiveX o Flash embebidos en las páginas web. En mi caso no me había percatado hasta hace unos días, ya que navego usualmente con <a href="http://www.mozilla.com/firefox" target="_blank" class="external">Firefox</a>, y utilizo el Explorer únicamente para comprobar que lo que desarrollo se ve correctamente.</p>
   <p>En realidad este mensaje es una muestra más de hasta donde puede llegar a ser pernicioso el tema de las patentes de software. Resulta que Microsoft llevaba bastante tiempo en juicios con una empresa llamada <a href="http://en.wikipedia.org/wiki/Eolas" target="_blank" class="external">Eolas</a>, que tiene la única licencia de utilización de una patente registrada por la Universidad de California, referente a la inclusión de plugins dentro de páginas web. Finalmente Microsoft ha sido condenada a pagar la friolera de 560 millones de dolares y se ha visto obligada a crear un parche para el explorer que modifica la carga de los plugin, entre ellos flash, de forma que el usuario no pueda interactuar con ellos hasta hacer click voluntariamente.</p>
   <p><img src="/upload/2006/05/activating_activex.gif" class="centered" alt="" /><br />
 <a href="http://www.eslomas.com/index.php/archives/2006/05/04/haga-click-para-activar-y-usar-este-control/#more-267"></a>
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2006/05/04/haga-click-para-activar-y-usar-este-control/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>El W3C está trabajando en la estandarización del objeto XMLHttpRequest</title>
		<link>http://www.eslomas.com/index.php/archives/2006/04/28/el-w3c-esta-trabajando-en-la-estandarizacion-del-objeto-xmlhttprequest/</link>
		<comments>http://www.eslomas.com/index.php/archives/2006/04/28/el-w3c-esta-trabajando-en-la-estandarizacion-del-objeto-xmlhttprequest/#comments</comments>
		<pubDate>Fri, 28 Apr 2006 07:43:26 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>JavaScript</category>
	<category>Otros diseño web</category>
		<guid>http://www.eslomas.com/index.php/archives/2006/04/28/el-w3c-esta-trabajando-en-la-estandarizacion-del-objeto-xmlhttprequest/</guid>
		<description><![CDATA[Leo en SitePoint [1] que el estandarización del objeto XMLHttpRequest [2], pieza fundamental de la llamada tecnología Ajax que está en el corazón de las aplicaciones web de última hornada.
   La estandarización la está llevando a cabo el Web APIs Working Group [3] con el nombre The XMLHttpRequest Object [4].
 (more&#8230;) [5]


[1] http://www.sitepoint.com/blogs/2006/04/10/w3c-works-to-standardize-xmlhttprequest/W3C
[2] http://www.w3.org/TR/XMLHttpRequest/
[3] http://www.w3.org/2006/webapi/
[4] http://www.w3.org/TR/XMLHttpRequest/
[5] http://www.eslomas.com/index.php/archives/2006/04/28/el-w3c-esta-trabajando-en-la-estandarizacion-del-objeto-xmlhttprequest/#more-265]]></description>
			<content:encoded><![CDATA[<p>Leo en <a href="http://www.sitepoint.com/blogs/2006/04/10/w3c-works-to-standardize-xmlhttprequest/W3C" target="_blank" class="external">SitePoint</a> que el <acronym title="World Wide Web Consortium">W3C</acronym> está trabajando en la <a href="http://www.w3.org/TR/XMLHttpRequest/" target="_blank" class="external">estandarización del objeto XMLHttpRequest</a>, pieza fundamental de la llamada tecnología Ajax que está en el corazón de las aplicaciones web de última hornada.</p>
   <p>La estandarización la está llevando a cabo el <a href="http://www.w3.org/2006/webapi/" target="_blank" class="external">Web APIs Working Group</a> con el nombre <a href="http://www.w3.org/TR/XMLHttpRequest/" target="_blank" class="external">The XMLHttpRequest Object</a>.<br />
 <a href="http://www.eslomas.com/index.php/archives/2006/04/28/el-w3c-esta-trabajando-en-la-estandarizacion-del-objeto-xmlhttprequest/#more-265"></a>
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2006/04/28/el-w3c-esta-trabajando-en-la-estandarizacion-del-objeto-xmlhttprequest/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Proyecto Open-Source impulsado por IBM para crear un framework AJAX</title>
		<link>http://www.eslomas.com/index.php/archives/2006/02/02/proyecto-ibm-framework-openajax/</link>
		<comments>http://www.eslomas.com/index.php/archives/2006/02/02/proyecto-ibm-framework-openajax/#comments</comments>
		<pubDate>Thu, 02 Feb 2006 15:18:43 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>JavaScript</category>
	<category>Otros diseño web</category>
		<guid>http://www.eslomas.com/index.php/archives/2006/02/02/proyecto-ibm-framework-openajax/</guid>
		<description><![CDATA[IBM conjuntamente con un grupo de empresas entre las que figuran Google, Oracle, Yahoo, Red Hat y Novell, han lanzado un proyecto open source con el nombre de Open Ajax y el objetivo de crear un framework que permita estandarizar el desarrollo de aplicaciones basadas en esta tecnología, y que funcione sobre diferentes entornos de ejecución (runtimes).
   Últimamente han aparecido multitud de proyectos independientes orientados al desarrollo de aplicaciones Ajax, desde proyectos comerciales a open-source, y cubriendo no siempre las mismas posibilidades. A mi entender es precisamente este gran abanico de opciones lo que en muchos casos está frenando actualmente la adopción de esta tecnología y que además está provocando que no se usen todas sus funcionalidades.
 (more&#8230;) [1]


[1] http://www.eslomas.com/index.php/archives/2006/02/02/proyecto-ibm-framework-openajax/#more-240]]></description>
			<content:encoded><![CDATA[<p>IBM conjuntamente con un grupo de empresas entre las que figuran Google, Oracle, Yahoo, Red Hat y Novell, han lanzado un proyecto open source con el nombre de Open Ajax y el objetivo de crear un framework que permita estandarizar el desarrollo de aplicaciones basadas en esta tecnología, y que funcione sobre diferentes entornos de ejecución (runtimes).</p>
   <p>Últimamente han aparecido multitud de proyectos independientes orientados al desarrollo de aplicaciones Ajax, desde proyectos comerciales a open-source, y cubriendo no siempre las mismas posibilidades. A mi entender es precisamente este gran abanico de opciones lo que en muchos casos está frenando actualmente la adopción de esta tecnología y que además está provocando que no se usen todas sus funcionalidades.<br />
 <a href="http://www.eslomas.com/index.php/archives/2006/02/02/proyecto-ibm-framework-openajax/#more-240"></a>
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2006/02/02/proyecto-ibm-framework-openajax/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Añadir fácilmente funciones al evento onload</title>
		<link>http://www.eslomas.com/index.php/archives/2005/10/07/anadir-facilmente-funciones-al-evento-onload/</link>
		<comments>http://www.eslomas.com/index.php/archives/2005/10/07/anadir-facilmente-funciones-al-evento-onload/#comments</comments>
		<pubDate>Fri, 07 Oct 2005 08:25:56 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>JavaScript</category>
		<guid>http://www.eslomas.com/index.php/archives/2005/10/07/anadir-facilmente-funciones-al-evento-onload/</guid>
		<description><![CDATA[Es frecuente que al juntar varios JavaScript obtenidos de diversas fuentes, cada uno haga su propia asignación al método window.onload, por lo que normalmente funcionará únicamente uno de los JavaScript. 
   El siguiente framento de código JavaScript permite añadir funciones al evento onload sin problemas de este tipo, lo único que debemos tener en cuenta es que las asignaciones deben hacerse utilizando esta función.
   
function addLoadEvent(func) {
   var oldonload = window.onload;
   if (typeof window.onload != 'function') {
      window.onload = func;
   }
   else {
      window.onload = function() {
      oldonload();
      func();
    }
}

   Si quisiéramos añadir la función &#8220;funcion1&#8243; al evento, haríamos únicamente addLoadEvent('funcion1').
   Para todo esto relacionado con los eventos, el W3C ha creado la especificación
DOM Level 2 Event [1], aunque dicha especificación no está implementanda en todos los navegadores, por lo que aunque desde luego esta no es la forma óptima ni ideal de hacer las cosas, el método descrito nos permite resolver el problema.
   Si tienes interés en obtener más información sobre qué navegadores soportan la especificación del Advances event registration [2] de Quirksmode.


[1] http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/
[2] http://www.quirksmode.org/js/events_advanced.html]]></description>
			<content:encoded><![CDATA[<p>Es frecuente que al juntar varios JavaScript obtenidos de diversas fuentes, cada uno haga su propia asignación al método <code>window.onload</code>, por lo que normalmente funcionará únicamente uno de los JavaScript. </p>
   <p>El siguiente framento de código JavaScript permite añadir funciones al evento onload sin problemas de este tipo, lo único que debemos tener en cuenta es que las asignaciones deben hacerse utilizando esta función.</p>
   <pre class="code">
function addLoadEvent(func) {
   var oldonload = window.onload;
   if (typeof window.onload != 'function') {
      window.onload = func;
   }
   else {
      window.onload = function() {
      oldonload();
      func();
    }
}
</pre>
   <p>Si quisiéramos añadir la función &#8220;funcion1&#8243; al evento, haríamos únicamente <code>addLoadEvent('funcion1')</code>.</p>
   <p>Para todo esto relacionado con los eventos, el <acronym title="World Wide Web Consortium">W3C</acronym> ha creado la especificación<br />
<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/" target="_blank" class="external"><acronym title="Document Object Model">DOM</acronym> Level 2 Event</a>, aunque dicha especificación no está implementanda en todos los navegadores, por lo que aunque desde luego esta no es la forma óptima ni ideal de hacer las cosas, el método descrito nos permite resolver el problema.</p>
   <p>Si tienes interés en obtener más información sobre qué navegadores soportan la especificación del <acronym title="World Wide Web Consortium">W3C</acronym>, puedes hacerlo en el árticulo <a href="http://www.quirksmode.org/js/events_advanced.html" target="_blank" class="external">Advances event registration</a> de Quirksmode.
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2005/10/07/anadir-facilmente-funciones-al-evento-onload/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Evitar que una página salga dentro de un frame</title>
		<link>http://www.eslomas.com/index.php/archives/2005/09/16/evitar-que-una-pagina-salga-dentro-de-un-frame/</link>
		<comments>http://www.eslomas.com/index.php/archives/2005/09/16/evitar-que-una-pagina-salga-dentro-de-un-frame/#comments</comments>
		<pubDate>Fri, 16 Sep 2005 16:30:00 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>JavaScript</category>
		<guid>http://www.eslomas.com/index.php/archives/2005/09/16/evitar-que-una-pagina-salga-dentro-de-un-frame/</guid>
		<description><![CDATA[Hoy toca un truco sencillo de JavaScript pero útil a la vez.  Quizás te haya ocurrido alguna vez ver una página tuya dentro de otra página, ya sea dentro de un frame o iframe. No sé a ti, pero a mi esto me parece bastante molesto, ya que después de todo el esfuerzo que se toma uno en hacer que la página quede cuadrada y se vea bien en todos los navegadores posibles, resulta que alguien la mete en un frame de estos y ya nada funciona como debería.
   Evitarlo es realmente sencillo, basta con incorporar el siguiente código JavaScript en tu página.
   
&lt;script type="text/javascript">
if (top != self) top.location.href = location.href;
&lt;/script>

   Si nuestra página está dentro de un frame, top será distinto de self, en cuyo caso se cambia la url de la página que nos contiene por la nuestra, de forma que el frame desaparece y nuestra página pasa a tomar el control de la ventana. Rápido, sencillo y eficaz.]]></description>
			<content:encoded><![CDATA[<p>Hoy toca un truco sencillo de JavaScript pero útil a la vez.  Quizás te haya ocurrido alguna vez ver una página tuya dentro de otra página, ya sea dentro de un frame o iframe. No sé a ti, pero a mi esto me parece bastante molesto, ya que después de todo el esfuerzo que se toma uno en hacer que la página quede cuadrada y se vea bien en todos los navegadores posibles, resulta que alguien la mete en un frame de estos y ya nada funciona como debería.</p>
   <p>Evitarlo es realmente sencillo, basta con incorporar el siguiente código JavaScript en tu página.</p>
   <pre class="code">
&lt;script type="text/javascript">
if (top != self) top.location.href = location.href;
&lt;/script>
</pre>
   <p>Si nuestra página está dentro de un frame, top será distinto de self, en cuyo caso se cambia la url de la página que nos contiene por la nuestra, de forma que el frame desaparece y nuestra página pasa a tomar el control de la ventana. Rápido, sencillo y eficaz.</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2005/09/16/evitar-que-una-pagina-salga-dentro-de-un-frame/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Página HMTL centrada horizontal y verticalmente</title>
		<link>http://www.eslomas.com/index.php/archives/2005/09/13/pagina-html-centrada-horizontal-vertical/</link>
		<comments>http://www.eslomas.com/index.php/archives/2005/09/13/pagina-html-centrada-horizontal-vertical/#comments</comments>
		<pubDate>Tue, 13 Sep 2005 16:21:36 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>CSS</category>
	<category>JavaScript</category>
		<guid>http://www.eslomas.com/index.php/archives/2005/09/13/pagina-html-centrada-horizontal-vertical/</guid>
		<description><![CDATA[Es habitual en algunos diseños web que la pantalla se mantenga a un ancho y alto fijo centrada en el navegador del usuario. Esto es relativamente sencillo hacerlo con HTML, pero la cosa cambia si queremos hacerlo con CSS. Con el centrado horizontal no hay problema, ya que es suficiente con dar una anchura a la capa que representa el contenido de la página y poner en su margin 0 auto, sin embargo con el centrado vertical la cosa cambia. Si lo has intentado alguna vez lo primero que habrás hecho seguramente será sustituir el 0 auto anterior por un auto y habrás comprobado que no funciona. De hecho hay multitud de trucos que intentan resolver este problema, pero ninguno lo consigue del todo. 
   Una posible solución [1], que a mi entender es bastante buena, se basa en la utilización de una capa con posicionamiento absoluto que se ubica en la pantalla mediante JavaScript. Al lanzarse los eventos onload y onresize se llama a una función (positionIt) que se encarga de obtener las dimensiones de la capa que hay que centrar (divCentrado) y configurar sus valores left y top, para lo cual a su vez necesita obtener el tamaño disponible en el navegador del usuario, lo cual lo hace mediante las funciones getViewportWidth y getViewportHeight.
   
   Ver ejemplo [2]
   

[1] http://www.eslomas.com/upload/2005/09/centrado.html
[2] http://www.eslomas.com/upload/2005/09/centrado.html]]></description>
			<content:encoded><![CDATA[<p>Es habitual en algunos diseños web que la pantalla se mantenga a un ancho y alto fijo centrada en el navegador del usuario. Esto es relativamente sencillo hacerlo con <acronym title="HyperText Markup Language">HTML</acronym>, pero la cosa cambia si queremos hacerlo con <acronym title="Cascading Style Sheets">CSS</acronym>. Con el centrado horizontal no hay problema, ya que es suficiente con dar una anchura a la capa que representa el contenido de la página y poner en su <code>margin</code> <code>0 auto</code>, sin embargo con el centrado vertical la cosa cambia. Si lo has intentado alguna vez lo primero que habrás hecho seguramente será sustituir el <code>0 auto</code> anterior por un <code>auto</code> y habrás comprobado que no funciona. De hecho hay multitud de trucos que intentan resolver este problema, pero ninguno lo consigue del todo. </p>
   <p><a href="/upload/2005/09/centrado.html" target="_blank">Una posible solución</a>, que a mi entender es bastante buena, se basa en la utilización de una capa con posicionamiento absoluto que se ubica en la pantalla mediante JavaScript. Al lanzarse los eventos <code>onload</code> y <code>onresize</code> se llama a una función (positionIt) que se encarga de obtener las dimensiones de la capa que hay que centrar (divCentrado) y configurar sus valores left y top, para lo cual a su vez necesita obtener el tamaño disponible en el navegador del usuario, lo cual lo hace mediante las funciones getViewportWidth y getViewportHeight.</p>
   <ul>
   <li><a href="/upload/2005/09/centrado.html" target="_blank">Ver ejemplo</a></li>
   </ul>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2005/09/13/pagina-html-centrada-horizontal-vertical/feed/</wfw:commentRSS>
	</item>
		<item>
		<title>Obtener el valor de un RadioButton seleccionado con JavaScript</title>
		<link>http://www.eslomas.com/index.php/archives/2005/09/05/obtener-el-valor-de-un-radiobutton-seleccionado-con-javascript/</link>
		<comments>http://www.eslomas.com/index.php/archives/2005/09/05/obtener-el-valor-de-un-radiobutton-seleccionado-con-javascript/#comments</comments>
		<pubDate>Mon, 05 Sep 2005 16:02:19 +0000</pubDate>
		<dc:creator>Patxi</dc:creator>
		
	<category>JavaScript</category>
		<guid>http://www.eslomas.com/index.php/archives/2005/09/05/obtener-el-valor-de-un-radiobutton-seleccionado-con-javascript/</guid>
		<description><![CDATA[Esta es una de esas cosas que las haces de ciento a viento y que cada vez que toca hacerla de nuevo, o no hay forma de acordarse cómo hacerlo o de dónde lo habíamos utilizado, para hacer un &#8220;copypaste&#8221;.
   El siguiente HTML monta un formulario de ejemplo con el cual se solicita al usuario que elija su sistema operativo favorito.
   
&lt;form name="frmSO">
&lt;input type="radio" name="so" value="windows">Windows
&lt;input type="radio" name="so" value="linux">Linux
&lt;input type="radio" name="so" value="osx">OSX
&lt;input type="radio" name="so" value="other">Other
&lt;/form>

   No hay una forma directa de obtener qué radio button está seleccionado y saber así su valor. Si es la primera vez que lo intentas seguramente habrás intentado hacer algo como document.form.so.value y te habrás dado cuenta que eso no funciona, y es normal ya que si te fijas en el html, tenemos 4 controles con el mismo nombre. Para poder obtener el valor seleccionado, cada &#8220;conjunto&#8221; de controles radio está representado en JavaScript mediante un array, de forma que debemos recorrer ese array para obtener la opción seleccionada. El siguiente código nos facilita el trabajo:
   
function getRadioButtonSelectedValue(ctrl)
{
    for(i=0;i&lt;ctrl.length;i++)
        if(ctrl[i].checked) return ctrl[i].value;
}

   Ahora ya podríamos utilizar esta función para obtener el valor seleccionado, pasándole como parámetro el control radiobutton del que queremos obtener el valor, en nuestro caso: getRadioButtonSelectedValue(document.frmSO.so);.
]]></description>
			<content:encoded><![CDATA[<p>Esta es una de esas cosas que las haces de ciento a viento y que cada vez que toca hacerla de nuevo, o no hay forma de acordarse cómo hacerlo o de dónde lo habíamos utilizado, para hacer un &#8220;copypaste&#8221;.</p>
   <p>El siguiente <acronym title="HyperText Markup Language">HTML</acronym> monta un formulario de ejemplo con el cual se solicita al usuario que elija su sistema operativo favorito.</p>
   <pre class="code">
&lt;form name="frmSO">
&lt;input type="radio" name="so" value="windows">Windows
&lt;input type="radio" name="so" value="linux">Linux
&lt;input type="radio" name="so" value="osx">OSX
&lt;input type="radio" name="so" value="other">Other
&lt;/form>
</pre>
   <p>No hay una forma directa de obtener qué radio button está seleccionado y saber así su valor. Si es la primera vez que lo intentas seguramente habrás intentado hacer algo como <code>document.form.so.value</code> y te habrás dado cuenta que eso no funciona, y es normal ya que si te fijas en el html, tenemos 4 controles con el mismo nombre. Para poder obtener el valor seleccionado, cada &#8220;conjunto&#8221; de controles radio está representado en JavaScript mediante un array, de forma que debemos recorrer ese array para obtener la opción seleccionada. El siguiente código nos facilita el trabajo:</p>
   <pre class="code">
function getRadioButtonSelectedValue(ctrl)
{
    for(i=0;i&lt;ctrl.length;i++)
        if(ctrl[i].checked) return ctrl[i].value;
}
</pre>
   <p>Ahora ya podríamos utilizar esta función para obtener el valor seleccionado, pasándole como parámetro el control radiobutton del que queremos obtener el valor, en nuestro caso: <code>getRadioButtonSelectedValue(document.frmSO.so);</code>.
</p>]]></content:encoded>
			<wfw:commentRSS>http://www.eslomas.com/index.php/archives/2005/09/05/obtener-el-valor-de-un-radiobutton-seleccionado-con-javascript/feed/</wfw:commentRSS>
	</item>
	</channel>
</rss>
