Tobias Müller: Eventhandler-Attribute erzeugen - IE+Opera wollen nicht

Beitrag lesen

Hallo MudGuard,

if (! window.opera)
    {
        var attrNode2 = document.createAttribute("onmouseover");

if (document.all)
            attrNode2.nodeValue = function(){showNavi(); return false;};
        else
            attrNode2.nodeValue = "showNavi(); return false";

anchorElem.setAttributeNode(attrNode2);
    }
    else
    {
        anchorElem.setAttribute("onMouseOver", "showNavi(); return false;");
    }

genommen. Das funktioniert in IE 6.0, Opera 7.53 und Firefox 1.0.

Statt 3 schön übersichtlichen und logischen Zeilen so ein Aufwand ...

Dieser Aufwand ist doch garnicht nötig.

Ich würde aus

attrNode2 = document.createAttribute("onmouseover");
   attrNode2.nodeValue = "showNavi(); return false;";
   anchorElem.setAttributeNode(attrNode2);

einfach

anchorElem.onmouseover = function() { showNavi(); return false; };

machen. ich habe das kürzlich genauso gemacht und es klappt einwandfrei in Opera 7+, IE 5+, Netscape 6+/Mozilla und Safari.

MfG, Mülli

--
Viva Colonia!