Axel Richter: nicht-definierte Funktion wegen <!--[if IE]>

Beitrag lesen

Hallo,

Hallo, ich habe mir als Ersatz für div:hover für den IE folgendes kleine Javascript gemacht:

<script type="text/javascript">
<!--[if IE]>
function einblenden() {
document.getElementById("bruecke").style.display="block";
document.getElementById("strich").style.display="block";
document.getElementById("menu").style.display="block";}
function ausblenden() {
document.getElementById("bruecke").style.display="none";
document.getElementById("strich").style.display="none";
document.getElementById("menu").style.display="none";}
<![endif]-->
</script>

und weiter unten dann:

<div id=“menubox“ onmouseover="einblenden()" onmouseout="ausblenden()">

Das ganze funktioniert auch gut, allerdings rufen ja so alle Browser außer dem IE Funktionen auf, die gar nicht existieren! Ich weiß nicht, ob das ein Problem ist?!

Ja, ich würde es als ein Problem ansehen. Schon das Notieren der Eventhandler-Attribute im HTML ist ja für standardkonforme Browser gar nicht nötig. Ich würde das JavaScript komplett vom HTML abkapseln. Die Eventhandler kannst Du auch mit purem JavaScript definieren. Etwa so:

<!--[if IE]>

<script type="text/javascript">
function einblenden() {
document.getElementById("bruecke").style.display="block";
document.getElementById("strich").style.display="block";
document.getElementById("menu").style.display="block";}
function ausblenden() {
document.getElementById("bruecke").style.display="none";
document.getElementById("strich").style.display="none";
document.getElementById("menu").style.display="none";}

window.onload = function() {
     if (document.getElementById) {
      var myDIV = document.getElementById("menubox");
      myDIV.onmouseover = einblenden;
      myDIV.onmouseout = ausblenden;
     }
   }

</script>

<![endif]-->

und weiter unten dann:

<div id="menubox">

So hast Du im HTML erst gar keine Attribute, die _nur_ der IE braucht.

viele Grüße

Axel