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);
}
}
No hay comentarios:
Publicar un comentario