Je charge un fichier JS nécessaire uniquement pour une partie de ma page Web, uniquement lorsque l'utilisateur navigue vers cet onglet de la page.
var scriptFile = document.createElement("script");
scriptFile.setAttribute("type", "text/javascript");
scriptFile.setAttribute("src", scriptURL);
J'essaie de mettre au point un mécanisme de gestion des erreurs pour ce chargement dynamique, afin de pouvoir afficher un message d'erreur si le chargement du JS est interrompu ou si le JS n'est pas disponible à l'emplacement spécifié par l'URL.
Voici comment j'essaie de mettre en œuvre la gestion des erreurs (pour IE) :
scriptFile.onreadystatechange = function() { // For IE
if (this.readyState == 'complete' || this.readyState == 'loaded') {
// Display content in tab
} else {
// Display error message
}
}
Cela cause un problème. Lorsque tout va bien et que le JS est présent comme prévu, j'obtiens d'abord le message d'erreur, puis le contenu correct.
Après quelques réflexions, j'ai découvert que le readyState passe d'abord de "uninitialized" à "loading", puis à "loaded". C'est lorsque l'état est à "loading" que le message d'erreur s'affiche. Ensuite, l'état passe à "loaded" et le contenu s'affiche.
Avez-vous une idée de la façon de gérer cette situation pour que l'erreur ne s'affiche pas au départ ?