Cargar un archivo local, si no hay internet disponible

Iniciado por z3nth10n, 20 Octubre 2012, 01:22 AM

0 Miembros y 1 Visitante están viendo este tema.

z3nth10n

Hola amigo, pues como dice el titulo hay alguna forma de hacer eso? Con html, o javascript... o como pueda ser, gracias. :)

Interesados hablad por Discord.

#!drvy

#1
Hola,

Hay un truco muy sencillo que en una linea básicamente te permitiría saber si te has quedado sin Internet o no xD. Se trata de poner una imagen externa (logo de google por ejemplo) y agregar onerror para que en caso de que no pueda cargarse salte.

El ejemplo:

Código (html4strict) [Seleccionar]
<img src='https://www.google.com/logos/classicplus.png' onerror='SinInternet();'  style="display:none;" />

Así, si el logo de google no se consigue cargar, saltara la función javascript "SinInternet();". Por supuesto le añado display:none; para que no se muestre en caso de que se cargue o para que el navegador no ponga una de sus imágenes rotas.

Luego con Ajax (javascript) puedes llamar un archivo en tu ordenador.
Ejemplo:
Código (javascript) [Seleccionar]
<script type="text/javascript">
var SinInternet = function(){
  // abrimos XMLHttpRequest
  var client = new XMLHttpRequest();
  // Buscamos el archivo "Sininternet.html"
  client.open('GET', 'Sininternet.html');
  // Cuando este listo..
  client.onreadystatechange = function() {
     // Obtenemos el elemento con id "contenido"
     var contenido = document.getElementById('contenido');
     // ponemos la respuesta en el elemento.
     contenido.innerHTML=client.responseText;
  }
  // Enviamos peticion.
  client.send();
}
</script>


Espero que te sirva.

PD: Ten en cuenta que según recuerdo onerror no es valido para la W3C por tanto no se considera un atributo valido para la HTML4 ni XHTML.

Saludos