Grütze .. äh ... Grüße!
So, nachdem ich mir beim Schreiben des Betreffs fast die Finger verknotet habe (schreibt das Wort mal selber .. brrr), nun mein Anliegen:
Ich bin gerade dabei, mein Javasript abwärtstauglich zu machen, denn
im IE5.01 [1] hat es mir das Script "gerissen", weil z.B. splice() erst ab IE5.5 existiert.
Durch Abfrage der Existenz einer Methode oder Eigenschaft vor dem Aufruf kann ich bekanntlich verhindern, daß so ein Fehler auftritt.
Aber wie frage ich nun am Besten ab?
wenn ich schreibe
var abc = [1,2,3,4];
alert(abc.splice);
dann erhalte ich je nach Browser erwartungsgemäß entweder eine Funktion oder "undefined" und kann mit
if (abc.splice) {
// allerlei
}
entsprechend abfragen.
Nun ist es so, daß ich eine ganze Funktion nur ausführen will, wenn die Methode splice existiert, das Array wird aber erst innerhalb der Funktion erzeugt. Ich könnte zwar tricksen und ein dummy-Array benutzen:
alert([].splice);
aber das finde ich programmiertechnisch ziemlich unschön.
Gibt es noch eine andere, evtl. generische Methode oder müßte ich es wie oben schreiben? Array.splice scheint nicht zu funktionieren. Und wie sieht es mit Methoden anderer Objekte aus? [2]
Cü
Kai
[1] Da das Ganze größtenteils auch eine Lernübung ist, berücksichtige ich auch solche Browser noch ;)
[2] Sorry fürs dumme Fragen, aber bin eben noch lange kein Experte.
What is the difference between Scientology and Microsoft? One is an
evil cult bent on world domination and the other was begun by L. Ron
Hubbard.
ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|