Puedes hacer un método usando un iframe invisible, te preparé la siguiente función:
Código Javascript
:
Ver originalfunction ping( URL, FUNCION, ESPERA ) {
if ( ! URL || typeof( FUNCION ) != "function" )
return false;
var hay_respuesta = false,
iframe = document.createElement("iframe"),
tiempo_espera = Number( ESPERA ) || 5000,
proseguir = function () {
document.body.removeChild ( iframe );
FUNCION( hay_respuesta );
};
with( iframe ) {
name = "iframe1";
style.display = "none";
src = URL;
}
iframe.onload = function() { hay_respuesta = true };
document.body.appendChild( iframe );
setTimeout( proseguir, tiempo_espera );
}
Te describo la función
ping:
ping ( dirección, función [, espera] )
Parámetros:
- string
dirección: dirección del servidor, ya sea un enlace, IP o dominio junto con su protocolo, es decir,
http://(el más común). Se hará ping a
dirección.
- function
función: función que se ejecutará al terminar el ping, tendrá argumentado un parámetro booleano que valida si hay o no respuesta.
- int
espera: milisegundos de espera para validar la respuesta del servidor al que se hace ping, si no se póne nada el defectos será 5 segundos. Recomiendo como mínimo de 3 segundos para evitar que retorne false, siendo que probablemente haya respuesta. Todo depende de la velocidad de internet.
Ahora te pongo un ejemplo:
Código Javascript
:
Ver originalfunction z( respuesta ) {
alert( respuesta );
}
ping( "http://google.com", z, 4000 );
// El resultado sería true.
ping( "http://g00gle.com", z, 4000 );
// El resultado sería false.
Saludos.