Wir haben JavaScript, das ein Skript-Include in eine dynamische Ressource auf unserer Webseite schreibt, damit wir einige Informationen zwischen Seiten austauschen können, die von verschiedenen Servern stammen Cross-Site-Scripting-Einschränkungen.IE führt intermittierend keine dynamisch hinzugefügte Skriptdatei aus
Die Idee ist, dass der Browser die JavaScript-Datei anfordert, die von einer dynamischen Ressource auf der Serverseite bedient wird (die auch einige serverseitige Informationen in die Anfrage eingibt). Die JavaScript-Datei wird dann vom Browser ausgeführt, wenn sie der Seite hinzugefügt wird.
Wir haben ein Problem mit Internet Explorer festgestellt, bei dem das in der Antwort zurückgegebene JavaScript nicht zeitweise ausgeführt wird, wenn es der Seite hinzugefügt wird. Wenn ein Fiddler-HTTP-Trace bei Auftreten des Problems untersucht wird, wird das Skript erfolgreich an den Browser zurückgegeben.
Um dies zu testen, zuverlässiger, ich den Code geändert, den das Skript 1000 mal in einer Schleife, wie unten ausgeführt, fügt hinzu:
for (var i = 1; i <= 1000; i++) {
try {
var script = document.createElement("SCRIPT");
script.src = serverHome + "/ajavascriptfile.js?token=" + token + "&num=" + i;
script.id = token;
document.getElementsByTagName("HEAD")[0].appendChild(script);
} catch (e) {
alert(e);
}
}
Das Skript von ajavascriptfile.js
einfach einen Zähler auf meiner Seite zurückgegeben:
var output = document.getElementById("output");
output.innerHTML = parseInt(output.innerHTML) + 1;
In diesem Test werden keine Ausnahmen abgefangen oder alarmiert.
Wenn dies richtig ausgeführt wird, sollte der Zähler auf 1000 (was es in Firefox tut). In IE6 sind es jedoch 900-950, IE7 etwa 995-998 und IE8 ist eine schockierende 750-800.
Hat jemand anderes festgestellt, dass Internet Explorer keine dynamisch eingeschlossenen Skripts ausführt? Wenn ja, wissen Sie, wie Sie dieses Problem umgehen können?
Haben Sie zufällig eine ' ' auf der Seite? –
Nein Ich habe kein auf der Seite. –
Ich arbeite durch dieses Problem, aber ich bin mir nicht sicher, warum es falsch ist! – JustEngland