Die Ladedatei des Browsers hat tatsächlich sehr verwirrte Kompatibilitätsprobleme. Kürzlich habe ich gesehen, wie @Lifesinger eine bestimmte Zusammenfassung gegeben hat. Was hier störender ist, ist, dass IE6 ~ 8 nicht zwischen erfolgreichem oder fehlgeschlagenem Laden unterscheidet und sie alle einen Rückruf gehen. Ich habe online eine Lösung gesehen, die am Ende der Ladedatei eine globale Variable platziert oder die Attribute des Etiketts ändern soll, um sie zu unterscheiden, damit der Erfolg oder nicht anhand dieses Flaggenbits beurteilt wird. Aber es ist offensichtlich nicht perfekt und die Datei muss geladen werden.
Später habe ich eine andere Idee ausprobiert, zuerst ein VBSCript erstellen und SRC in eine JS -Datei einstellen. Wenn die Datei normal lädt, wird ein Fehler auf jeden Fall gemeldet, andernfalls wird keine Antwort aufgeführt. Auf diese Weise bedeutet dies, dass die Datei gültig ist und normal geladen wird. Wenn nicht erfasst wird, wird in n Sekunden eine Zeitüberschreitung ausgelöst.
Dieser Teil des Codes:
Die Codekopie lautet wie folgt:
if (dh && dh <9) {
vbs = doc.createelement (/'script/');
vbs.uanguage = /'vbscript /';
vbs.src = Datei;
SaveErrorHandle = Win.onError;
win.onError = function () {
laden();
win.onError = SaveErrorHandle;
zurückkehren;
};
setTimeout (function () {
Ref.Parentnode.insertBefore (VBS, Ref);
}, 0);
} anders {
laden();
}