Liste aller benutzerdefinierten Funktionen
Gary
- javascript
0 molily
Hi @ all!
Ich will mir eine Liste aller (benutzer)definierten Funktionen ermitteln. Im Firefox/Opera/etc. klappt das alles auch wunderbar, nur der IE macht's mal wieder nicht mit.
Ich durchlaufe das window-Objekt und prüfe ob die Unterelemente Funktionen sind. Der IE listet mir allerdings dabei keine benutzerdefinierten Funktionen auf. Wenn ich aber auf window[meineFunktion] prüfe erhalte ich trotzdem den Funktionskörper.
Woran liegt das?
Wie könnte ich sonst eine Liste der Funktionen erhalten?
Hier noch mein Script:
function meineFunktion()
{
alert("Hallo Welt!");
}
function getFuntionList()
{
var ret = [];
for(var f in window)
{
if(typeof window[f] === "function") {
ret.push(f);
}
}
return ret;
}
// Im Internet Explorer fehlt "meineFunktion"
var list = getFuntionList();
// Test
alert(typeof window['meineFunktion']); // Ausgabe: "function"
Danke für jede Hilfe!
Mit freundlichen Grüßen!
Gary
Ein IE-Fehler. Die for-in-Schleife liefert überhaupt keine Funktionen. Da kann man nichts tun.
Ich will mir eine Liste aller (benutzer)definierten Funktionen ermitteln.
Das kannst du ohnehin nicht, window hat ungefähr hunderte Methoden (v.a. Konstruktoren), die nicht benutzerdefiniert sind, in vielen Browsern aber enumerable sind, d.h. durch eine for-in-Schleife gefunden werden.
Wenn du alle benutzerdefinierten Funktionen willst, dann speichere sie nicht an window, sondern in einem Namespace, d.h. einem eigenen Unterobjekt von window. Das kannst du dann mit for-in durchlaufen.
Mathias