ich ein Stück Code, der auf diese vereinfacht werden kann:IE schlägt fehl, wenn Funktionen von externem Javascript aufruft?
var s='' ;
s += "<"+"script type=\"text/javascript\" src=\"http://somehost.com/scripts/FooFunctions.js\">\n";
s += "<"+"/script>" ;
s += "<"+"script type=\"text/javascript\">\n";
s += "FooFunction(42, 'i love cats');\n";
s += "<"+"/script>" ;
document.write(s) ;
In allen Browsern außer IE, dies führt, wie man es erwarten würde - Funktionen von somehost.com/scripts/FooFunctions.js wie erwartet .
In Internet Explorer schlägt dies fehl.
Googeln scheint dies schwierig. Ich habe gelegentlich Post mit dem gleichen Problem gefunden, aber keine Lösung.
(Es gibt einen triftigen Grund, dass die externe Datei von Javascript enthalten sein muss auf diese Weise, und dass die PGAE ein <script src="http://somehost.com/scripts/FooFunctions.js">
darin eingefügt nicht haben kann.)
Um klar zu sein, die Frage ist: Wie kann ich das oben genannte Stück des Codes im Internet Explorer die gleiche Funktion wie in z Feuerfuchs?
Nicht ganz sicher, aber das funktioniert wahrscheinlich, weil Skript Aufnahme durch DOM-Injektion (was Sie hier tun), Skriptdownloads nicht parallelisiert - sie werden seriell geladen. Daher ist garantiert, dass es verfügbar ist, wenn Sie die Warnung erreichen(). –
Ich habe eigentlich schon diese Methode ausprobiert, und es schien nicht das Problem zu lösen, aber ich werde es erneut versuchen. – mozboz