Le chargement de fichiers du navigateur a en fait des problèmes de compatibilité très emmêlés. Récemment, j'ai vu @lifesinger donner un résumé spécifique. Ce qui est plus gênant ici, c'est que IE6 ~ 8 ne fait pas de distinction entre le chargement réussi ou échoué, et ils font tous un rappel. J'ai vu une solution en ligne, qui est de placer une variable globale à la fin du fichier de chargement ou de modifier les attributs de l'étiquette pour le distinguer, afin que le succès soit jugé par ce bit de drapeau. Mais ce n'est évidemment pas parfait et le fichier doit être chargé.
Plus tard, j'ai essayé une autre idée, créez d'abord un VBScript, définissez SRC dans un fichier JS. Si le fichier se charge normalement, une erreur sera certainement signalée, sinon il n'y aura pas de réponse. De cette façon, si Window.onerror attrape l'erreur, cela signifie que le fichier est valide et qu'il sera chargé normalement. S'il n'est pas capturé, un délai d'expiration sera déclenché en n secondes.
Cette partie du code:
La copie de code est la suivante:
if (ie && ie <9) {
vbs = doc.createelement (/ 'script /');
vbs.language = / 'vbscript /';
vbs.src = fichier;
SaveRerrorHandle = win.OnError;
win.onerror = function () {
charger();
win.OnError = SaveErrorHandle;
Retour Vrai;
};
setTimeout (function () {
ref.parentNode.insertBefore (VBS, ref);
}, 0);
} autre {
charger();
}