Kai345: Browser-Kompatibilität

Beitrag lesen

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]


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:|