Hallo,
ich habe einen Script-Loader geschrieben, der Scripts dynamisch in ein Dokument einfügt. Alle Klassen / Funktionen , die in diesen Scripts vorhanden sind, sind nach dem Laden auch verfügbar.
Das Einfügen sieht so ähnlich aus:
var heads = document.getElementsByTagName( "head" );
var script = document.createElement("script");
//-- set the src attribute, that means load the script!
script.src = "xxx.js";
script.type = "text/javascript";
var head = (heads.length > 0 ) ? heads[0] : document.body;
//-- append child to the head parent node
head.appendChild(script);
Nun möchte ich alle Function-Objekte, die das Dokument kennt, durchlaufen
for( var name in window ) {
var f = window[name];
if( typeof f != 'function' ) continue;
//... do something
}
jedoch sind diese im window-Objekt nicht vorhanden, zumindest dann nicht, wenn man mit dieser for-each-Schleife drübergeht. Kennt man den Namen des Function-Objektes und referenziert dieses direkt (window["MeineKlasse"]), kennt sich IE plötzlich aus. Warum?!
Ich arbeite schon seit einigen Jahren im JS-Umfeld - und zwar sehr intensiv - jedoch ist mir so eine Sch... Software wie IE noch niemals untergekommen. Es ist eine Qual etwas für IE zu entwickeln. Rein für die Optimierungen und Kompatibilität mit IE-Browsern (6, 7, 8) muss man mind.30% der Arbeitszeit einplanen, weil das so ein Mist ist! Ich bin wirklich entsetzt!
Danke für etwaige Vorschläge, wie man dies fixen könnte.
kati