2010-09-10 4 views
1

dans le script java je suis d'inclure un fichier source comme d'habitudeJavascript Source manquant

<script src="http://source.com?file=1" type="text/javascript"></script> 

Le problème est que, parfois, le fichier est pas accessible et il jette une exception. Est-il possible d'inclure un fichier comme celui-ci mais s'il n'est pas disponible, attraper l'exception et naviguer vers une nouvelle page? Je ne veux pas que toutes les exceptions soient dirigées vers une nouvelle page, juste cette instance.

+1

Que voulez-vous dire par "non accessible" exactement? Y a-t-il une erreur de serveur? Et quand exactement l'exception est-elle levée? –

+0

Quelle exception voyez-vous? La dernière fois que j'ai vérifié, si le serveur source est inaccessible, cela échoue silencieusement. – egrunin

Répondre

0

L'insertion de balises de script dynamique peut vous être une option.

var insertScript = function(name){ 
    var scr = document.createElement('script'); 

    scr.src = name; 
    scr.type = 'text/javascript';  

    scr.onload = scr.onreadystatechange = function(){ 
     if(scr.readyState){ 
      if(scr.readyState === 'complete' || scr.readyState === 'loaded'){ 
       scr.onreadystatechange = null; 
       // script was loaded successfully                  
      } 
     } 
     else{        
      // script was loaded successfully 
     } 
    }; 

    scr.onerror = function(){ 
     window.location.href = "http://www.foobar.com"; 
    }; 

    head.insertBefore(scr, head.firstChild); 
}; 

Utilisation:

insertScript("http://source.com?file=1"); 
0

Oui, insérez le script en utilisant javascript:

<script type="text/javascript"> 
try { 
    var newscript = document.createElement('script') ; 
    newscript.type='text/javascript' ; 
    newscript.src='http://source.com?file=1' ; 
    document.getElementsByTagName("head")[0].appendChild(newscript) ; 
} catch(e) { 
    // Timeout/error handling here. 
} 
</script>