Es conocida la problemática que existe en Javascript para algo tan simple como comprobar si una variable es realmente un Array (Matriz/Arreglo). En Perfection Kills proponen una implementación simple de la comprobación de si una variable es un Array que parece más robusta que las que se han usado hasta ahora:
typeof null; // "object" typeof []; // "object" var arr = []; arr instanceof Array; // true arr.constructor == Array; // true, pero da problemas entre frames arr.constructor === Array; // false typeof myArray.sort == 'function' // si tiene definida la función sort // finalmente la opción que se ha demostrado más fiable es: function isArray(o) { return Object.prototype.toString.call(o) === '[object Array]'; }Por otro lado, Andrés Nieto ha reescrito una función de CSSGallery.info para que sea independiente y no necesite ninguna librería. Lo que hace esta función es cargar de forma transparente un recurso mediante Ajax, identificando si se trata de un recurso local (
file:///archivo
) o uno remoto tradicional (http://site/camino/archivo
). Resulta muy útil para principiantes cuando descargan algo para probarlo en local.
function get_content(url,update) { if ( document.location.protocol == "file:" ) { var ifr = document.createElement("iframe"); ifr.src = url; ifr.onload = function() { document.getElementById(update).innerHTML = this.contentWindow.document.body.innerHTML; } document.getElementsByTagName("body")[0].appendChild(ifr); } else { var ajax = (XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP'); ajax.open('GET', URL); ajax.onreadystatechange = function(){ document.getElementById(update).innerHTML = ajax.responseText; }; ajax.send(null); } }
0 comentarios:
Publicar un comentario