Der Martin: IE ruft eine Funktion nicht auf

Beitrag lesen

Hallo,

function setActive(Element){
        alert('test');
        if(document.getElementById(Element))

offensichtlich erwartet deine Funktion als Parameter die ID eines HTML-Elements - also einen einfachen String.

<a href=":export-xxx.html" target="Main" onclick="setActive(this);">

Und hier übergibst du gleich ein komplettes HTML-Elementobjekt. Das *kann* nicht funktionieren.
Entweder du übergibst hier nur this.id, das wäre die weniger effiziente Lösung, oder du belässt es bei this, kannst dir dann aber innerhalb der Funktion die Verrenkungen mit getElementById() sparen - denn du hast dann bereits die komplett aufgelöste Referenz auf das Element.

Wenn ich statt "this" eine ID-Namen übergebe, erscheint die Messagebox und die Hintergrundfarbe wird bei dieser ID geändert.

Eben. :-)

Skriptfehler werden nicht ausgegeben.
"Skriptdebugging deaktivieren" ist deaktiviert und "Skriptfehler anzeigen" ist aktiviert.

Oops. Das überrascht mich.

Iceweacel (Firefox) 2.0.0.14 und Opera 9.50 Beta 2 (Build
1962) setzen die Hintergrundfarbe wie gewünscht.

Oops. Das überrascht mich noch viel mehr.

Könnte es daran liegen, dass ich keinen nativen IE verwendet?

Nein - dann müssten sich trotzdem wenigstens Opera und Firefox erwartungskonform verhalten.

So long,
 Martin

--
"Drogen machen gleichgültig."
 - "Na und? Mir doch egal."