{"id":603,"date":"2011-06-14T15:33:04","date_gmt":"2011-06-14T14:33:04","guid":{"rendered":"http:\/\/mukom.mondragon.edu\/ismu\/?p=603"},"modified":"2011-06-15T14:29:21","modified_gmt":"2011-06-15T13:29:21","slug":"javascript-para-todos","status":"publish","type":"post","link":"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/","title":{"rendered":"\u00bfJavascript para IE o javascript para todos?"},"content":{"rendered":"<p>\u00daltimamente me ha tocado modificar el c\u00f3digo de la Secretar\u00eda Virtual de MU para darle una apariencia m\u00e1s moderna y acorde con el estilo de la nueva web de la universidad, y hacer que funcione con todos los navegadores (por lo menos con los m\u00e1s extendidos).<\/p>\n<p>En un primer momento, se especific\u00f3 que la Secretar\u00eda Virtual deb\u00eda  funcionar con Internet Explorer. La empresa contratada  para hacer el desarrollo utiliz\u00f3 c\u00f3digo javascript que solo es v\u00e1lido para Internet Explorer, por lo que algunos  apartados no funcionaban con otros navegadores.<\/p>\n<p><strong>Los problemas<\/strong><\/p>\n<p>El que haya hecho alg\u00fan desarrollo de javascript, se ha encontrado con <strong><em>document.all<\/em><\/strong>. Es una colecci\u00f3n de todos los elementos de la p\u00e1gina, con lo que de una manera f\u00e1cil podemos acceder a las propiedades de cada uno de ellos. Es una pena que no funcione en todos los navegadores.<\/p>\n<p>Otra colecci\u00f3n de elementos muy utilizada es <em><strong>document.formulario<\/strong><\/em>, donde <em>formulario<\/em> es el nombre de un elemento <em>&lt;form&gt;<\/em> de la p\u00e1gina HTML. Esto tampoco lo soportan todos los navegadores.<\/p>\n<p>Y por \u00faltimo, etiquetas <em>&lt;a&gt; <\/em>que contienen filas de tablas, formando una estructura como esta:<\/p>\n<blockquote><p>&lt;a onclick=&#8221;ejecutame();&#8221;&gt;<br \/>\n&lt;tr&gt;<br \/>\n&lt;td&gt;contenido celda&lt;\/td&gt;<br \/>\n&lt;td&gt;contenio de otra celda&lt;\/td&gt;<br \/>\n&lt;\/tr&gt;<br \/>\n&lt;\/a&gt;<\/p><\/blockquote>\n<p>Principalmente me he topado con estos 3 problemas a la hora de hacer funcionar la Secretar\u00eda Virtual con otros navegadores.<\/p>\n<p><strong>Las soluciones<\/strong><\/p>\n<p><em>document.all<\/em> es una colecci\u00f3n para acceder a los elementos de la p\u00e1gina, por lo que las opciones l\u00f3gicas para sustituir <em>document.all.elemento<\/em> son <em>document.getElementById(&#8220;elemento&#8221;)<\/em> o <em>document.getElementsByName(&#8220;elemento&#8221;)<\/em>. La primera opci\u00f3n nos devuelve el elemento con el identificador que pasemos como par\u00e1metro. La segunda opci\u00f3n, nos devuelve un array con todos los elementos que tengan el nombre que pasemos como par\u00e1metro. Dependiendo de la situaci\u00f3n, la soluci\u00f3n elegida ser\u00e1 una u otra.<\/p>\n<p>Con <em>document.formulario<\/em> pasa algo parecido. Es una colecci\u00f3n de todos los elementos que contiene un formulario. Las apariciones de <em>document.formulario.elemento<\/em> hay que sustituirlas por <em>document.forms.formulario.elements[&#8220;elemento&#8221;]<\/em>. Hay otro modo de uso, ya que <em>document.forms<\/em> es tambi\u00e9n un array con todos los formularios de la p\u00e1gina, por lo que se puede referenciar el formulario como <em>document.forms[0]<\/em> o <em>document.forms[1]<\/em>. El array <em>elements<\/em> se puede utilizar como un array indexado por n\u00famero o como un array indexado por valor (como en el ejemplo anterior).<\/p>\n<p>Aunque en Internet Explorer la estructura<\/p>\n<blockquote><p>&lt;a onclick=&#8221;ejecutame();&#8221;&gt;<br \/>\n&lt;tr&gt;<br \/>\n&lt;td&gt;contenido celda&lt;\/td&gt;<br \/>\n&lt;td&gt;contenio de otra celda&lt;\/td&gt;<br \/>\n&lt;\/tr&gt;<br \/>\n&lt;\/a&gt;<\/p><\/blockquote>\n<p>genera una p\u00e1gina que hace lo que queremos, en otros navegadores no funciona porque esa estructura no cumple las especificaciones de HTML (no puede haber un enlace fuera de una celda de una tabla, y mucho menos un enlace que contenga la fila entera de la tabla). En este caso la soluci\u00f3n es muy sencilla: eliminar las etiquetas <code>&lt;a&gt;<\/code> y <code>&lt;\/a&gt;<\/code>, y pasar el evento onclick a la fila. El c\u00f3digo correcto es algo as\u00ed:<\/p>\n<blockquote><p>&lt;tr onclick=&#8221;ejecutame();&#8221;&gt;<br \/>\n&lt;td&gt;contenido celda&lt;\/td&gt;<br \/>\n&lt;td&gt;contenio de otra celda&lt;\/td&gt;<br \/>\n&lt;\/tr&gt;<\/p><\/blockquote>\n<p><strong>Conclusiones<\/strong><\/p>\n<p>Mientras he ido haciendo este trabajo, me he dado cuenta de un par de cosas:<\/p>\n<ol>\n<li>Con un mejor dise\u00f1o de la aplicaci\u00f3n y un uso racional de funciones y procedimientos se simplifica el mantenimiento posterior.<\/li>\n<li>En  lo que a javascript se refiere, es mejor hacer el desarrollo de  javascript pensando en que se va a utilizar en m\u00faltiples navegadores y  respetando las recomendaciones de los est\u00e1ndares, que adaptarlo m\u00e1s  tarde.<\/li>\n<\/ol>\n<p>Parafraseando al cerdito de los dibujos, &#8220;eso es to, eso es to, eso es to to todo, amigos&#8221;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A la hora de enriquecer nuestras p\u00e1ginas con javascript, podemos encontrarnos con que no funcionan en cualquier navegador. Esta es nuestra experiencia adecuando el c\u00f3digo javascript de la Secretar\u00eda Virtual de MU.<\/p>\n","protected":false},"author":54,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[76,77,75,74],"series":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u00bfJavascript para IE o javascript para todos? - MUko Informazio Sistemak<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00bfJavascript para IE o javascript para todos? - MUko Informazio Sistemak\" \/>\n<meta property=\"og:description\" content=\"A la hora de enriquecer nuestras p\u00e1ginas con javascript, podemos encontrarnos con que no funcionan en cualquier navegador. Esta es nuestra experiencia adecuando el c\u00f3digo javascript de la Secretar\u00eda Virtual de MU.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/\" \/>\n<meta property=\"og:site_name\" content=\"MUko Informazio Sistemak\" \/>\n<meta property=\"article:published_time\" content=\"2011-06-14T14:33:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-06-15T13:29:21+00:00\" \/>\n<meta name=\"author\" content=\"mkortabarria\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"mkortabarria\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutua\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/\",\"url\":\"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/\",\"name\":\"\u00bfJavascript para IE o javascript para todos? - MUko Informazio Sistemak\",\"isPartOf\":{\"@id\":\"https:\/\/mukom.mondragon.edu\/ismu\/#website\"},\"datePublished\":\"2011-06-14T14:33:04+00:00\",\"dateModified\":\"2011-06-15T13:29:21+00:00\",\"author\":{\"@id\":\"https:\/\/mukom.mondragon.edu\/ismu\/#\/schema\/person\/2aa4e7efe1dda2d7baa5410af8fe8224\"},\"breadcrumb\":{\"@id\":\"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/#breadcrumb\"},\"inLanguage\":\"eu\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mukom.mondragon.edu\/ismu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u00bfJavascript para IE o javascript para todos?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mukom.mondragon.edu\/ismu\/#website\",\"url\":\"https:\/\/mukom.mondragon.edu\/ismu\/\",\"name\":\"MUko Informazio Sistemak\",\"description\":\"MUko Informazio Sistemetakoen Taldeko Bloga\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mukom.mondragon.edu\/ismu\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"eu\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/mukom.mondragon.edu\/ismu\/#\/schema\/person\/2aa4e7efe1dda2d7baa5410af8fe8224\",\"name\":\"mkortabarria\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"eu\",\"@id\":\"https:\/\/mukom.mondragon.edu\/ismu\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d697e6fcb938a97f0b4b0cd2a2963bb9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d697e6fcb938a97f0b4b0cd2a2963bb9?s=96&d=mm&r=g\",\"caption\":\"mkortabarria\"},\"url\":\"https:\/\/mukom.mondragon.edu\/ismu\/author\/mkortabarria\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u00bfJavascript para IE o javascript para todos? - MUko Informazio Sistemak","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"\u00bfJavascript para IE o javascript para todos? - MUko Informazio Sistemak","og_description":"A la hora de enriquecer nuestras p\u00e1ginas con javascript, podemos encontrarnos con que no funcionan en cualquier navegador. Esta es nuestra experiencia adecuando el c\u00f3digo javascript de la Secretar\u00eda Virtual de MU.","og_url":"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/","og_site_name":"MUko Informazio Sistemak","article_published_time":"2011-06-14T14:33:04+00:00","article_modified_time":"2011-06-15T13:29:21+00:00","author":"mkortabarria","twitter_card":"summary_large_image","twitter_misc":{"Written by":"mkortabarria","Est. reading time":"3 minutua"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/","url":"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/","name":"\u00bfJavascript para IE o javascript para todos? - MUko Informazio Sistemak","isPartOf":{"@id":"https:\/\/mukom.mondragon.edu\/ismu\/#website"},"datePublished":"2011-06-14T14:33:04+00:00","dateModified":"2011-06-15T13:29:21+00:00","author":{"@id":"https:\/\/mukom.mondragon.edu\/ismu\/#\/schema\/person\/2aa4e7efe1dda2d7baa5410af8fe8224"},"breadcrumb":{"@id":"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/#breadcrumb"},"inLanguage":"eu","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mukom.mondragon.edu\/ismu\/2011\/06\/14\/javascript-para-todos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mukom.mondragon.edu\/ismu\/"},{"@type":"ListItem","position":2,"name":"\u00bfJavascript para IE o javascript para todos?"}]},{"@type":"WebSite","@id":"https:\/\/mukom.mondragon.edu\/ismu\/#website","url":"https:\/\/mukom.mondragon.edu\/ismu\/","name":"MUko Informazio Sistemak","description":"MUko Informazio Sistemetakoen Taldeko Bloga","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mukom.mondragon.edu\/ismu\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"eu"},{"@type":"Person","@id":"https:\/\/mukom.mondragon.edu\/ismu\/#\/schema\/person\/2aa4e7efe1dda2d7baa5410af8fe8224","name":"mkortabarria","image":{"@type":"ImageObject","inLanguage":"eu","@id":"https:\/\/mukom.mondragon.edu\/ismu\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d697e6fcb938a97f0b4b0cd2a2963bb9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d697e6fcb938a97f0b4b0cd2a2963bb9?s=96&d=mm&r=g","caption":"mkortabarria"},"url":"https:\/\/mukom.mondragon.edu\/ismu\/author\/mkortabarria\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/posts\/603"}],"collection":[{"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/users\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/comments?post=603"}],"version-history":[{"count":29,"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/posts\/603\/revisions"}],"predecessor-version":[{"id":627,"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/posts\/603\/revisions\/627"}],"wp:attachment":[{"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/media?parent=603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/categories?post=603"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/tags?post=603"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/mukom.mondragon.edu\/ismu\/wp-json\/wp\/v2\/series?post=603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}