2009-09-13 5 views
0

Je développe actuellement dans un environnement fermé un "diaporama" basé sur le Web, en utilisant Javascript pour passer à la diapositive suivante (en particulier document.location, après affichage la page en cours pour un délai de X secondes). Un problème que j'ai est que si la page suivante est hors connexion pour une raison quelconque, le diaporama entier se brise (page erreur indisponible, etc).vérification de la page suivante avant d'appeler document.location (javascript)

Est-il possible d'utiliser javascript pour vérifier si la page suivante est en ligne avant de la rediriger?

edit: Je contrôle l'environnement (intranet) - donc aucune chance de désactiver Javascript.

Répondre

1

Personnellement, je ne ferais pas cette vérification en javascript, les gens peuvent avoir javascript désactivé. Je pense que HttpRequest Object serait bon pour récupérer la réponse HTTP.

Découvrez http://www.w3schools.com/dom/dom_http.asp

<script type="text/javascript"> 

    function fileExists(URL){ 

     var httpRequest = window.XMLHttpRequest ? new XMLHttpRequest() 
          : window.ActiveXObject 
          ? new ActiveXObject("Microsoft.XMLHTTP") 
          : null;     
      httpRequest.open("HEAD",URL,false); 
     httpRequest.send(null); 
     return (httpRequest.status == 404) ? false : true; 
    } 

    function init(){ 

     if (fileExists('http://www.mysite.com/images/anything.jpg')) 
      { 
      alert('That file exists'); 
      } 
     else { 
      alert('That file does not exist'); 
      }  
    } 

    navigator.appName == "Microsoft Internet Explorer" ? attachEvent('onload', init, false) : addEventListener('load', init, false);  

</script> 
+1

Utiliser la détection de fonction au lieu de 'navigator.appName' renifler. –

0

Demandez la page suivante via Ajax, et ne pas rediriger vers la page suivante si vous n'obtenez pas de réponse satisfaisante.

Questions connexes