Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: z3nth10n en 20 Octubre 2012, 01:22 am



Título: Cargar un archivo local, si no hay internet disponible
Publicado por: z3nth10n en 20 Octubre 2012, 01:22 am
Hola amigo, pues como dice el titulo hay alguna forma de hacer eso? Con html, o javascript... o como pueda ser, gracias. :)


Título: Re: Cargar un archivo local, si no hay internet disponible
Publicado por: #!drvy en 20 Octubre 2012, 16:31 pm
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
  1. <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
  1. <script type="text/javascript">
  2. var SinInternet = function(){
  3.   // abrimos XMLHttpRequest
  4.   var client = new XMLHttpRequest();
  5.   // Buscamos el archivo "Sininternet.html"
  6.   client.open('GET', 'Sininternet.html');
  7.   // Cuando este listo..
  8.   client.onreadystatechange = function() {
  9.      // Obtenemos el elemento con id "contenido"
  10.      var contenido = document.getElementById('contenido');
  11.      // ponemos la respuesta en el elemento.
  12.      contenido.innerHTML=client.responseText;
  13.   }
  14.   // Enviamos peticion.
  15.   client.send();
  16. }
  17. </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