Hi,
var getElementsByClassName = function (className, element) { ... }
damit erzeugst du die Funktion (bzw. ein Funktionsobjekt) im globalen Scope - genaugenommen also als Methode des window-Objekts.
function hide(){
document.getElementsByClassName("Klasse")[0].style.display = "none";
}
Hier rufst du eine Methode des document-Objekts auf, die der IE nicht kennt.
Nach wie vor streikt IE mit folgender Begründung:
Meldung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
Zeile: 26
Zeichen: 4
Das ist dann vermutlich genau die Zeile mit dem oben zitierten Aufruf.
Woran liegt das? Habe ich da etwas völlig falsch verstanden beim Einsatz dieser Funktion?
Jein. Das Problem ist, *wo* diese Funktion aufgehängt wird. Im JS-Sprachstandard, den fast alle Browser außer dem IE kennen, ist getElementsByClassName() eine Methode des document-Objekts. Deine für den IE nachgelegte gleichnamige Methode ist aber eine Methode des window-Objekts.
Du musst also
* entweder beim Aufruf der Methode prüfen, ob document.getElementsByClassName existiert, und falls ja, dann diese Methode aufrufen, ansonsten window.getElementsByClassName - und da window das globale Objekt ist, kannst du es auch weglassen.
* oder bei der Definition der Methode prüfen, ob document.getElementsByClassName existiert, und falls ja, die Definition übergehen, andernfalls das erzeugte Funktionsobjekt dem document-Objekt als neue Methode anhängen.
So long,
Martin
Kopflosigkeit schützt nicht vor Migräne.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(