Moin Jens!
Ich schreibe es mal konkret für das betreffende Objekt 'window.clientInformation.mimeTypes' auf:
bei:for (Eigenschaft in window.clientInformation.mimeTypes){
// Coding ...
}
»»
passierts: hier liefert der IE5 eine hässliche Fehlermeldung "A runtime error has occured ... etc."Aha. Und *was* fuer einer??
Zwei Dinge fallen mir zu dem Thema ein:
- Du verwendest wahrscheinlich eine Rekursion, d.h. bei zu tiefer Verschachtelung kann es zu einem Stackueberlauf kommen (das waere z.B. ein Runtime error).
- Objekte koennen gegenseitig auf sich verweisen. So hat z.B. schon window selbst die Eigenschaften parent, self, top und window, die alle auf das window-Objekt selbst verweisen (ausser bei Framesets). Formular-Elemente haben die Eigenschaft form, um auf das Formular zu verweisen, zu dem sie gehoeren. Dieses Formular enthaelt aber wieder Verweise auf eben diese Elemente, usw. Du wirst also bald in eine Endlosschleife geraten, wenn Du nichts unternimmst, um das zu vermeiden, und dann wird nicht nur Punkt 1 schnell interessant, sondern es wird auch jede Menge mehr Speicher gebraucht, um all die erzeugten Daten zu speichern.
HTH && So long
Hey Calocybe!
Danke für deine Antwort. Aber ...
Es handelt sich zwar um eine Rekursion, das ist schon richtig und mir ist auch die Gefährlichkeit von Rekursionen bewusst:
Das eine Rekursion leicht mal in eine Endlosschleife laufen kann, muss natürlich bedacht werden und könnte von meiner JavaScript-Funktion auch leicht abgefangen werden.
Doch das Problem tritt in der dritten Ebene (Tiefe der Schleife auf) ... mit Stacküberlauf ist das wohl nicht zu erklären. Ausserdem tritt das Problem ja auch (ohne Rekursion!) für das Objekt 'window.clientInformation.mimeTypes' sofort auf wenn ich das Coding
for (Eigenschaft in window.clientInformation.mimeTypes){
// Coding ... z.B.: alert(Eigenschaft);
}
ausführe!!!
Ich bin also noch nicht zufrieden und hoffe auf weitere Vorschläge.
Gruß Jens