Gunnar Bittersmann: nicht-definierte Funktion wegen <!--[if IE]>

Beitrag lesen

Hello out there!

Geht auch
<!--[if !lt IE 7]> ?

Hm, weiß nicht. Musste ausprobieren. Oder googlen.

Mir ist aber noch eingefallen, dass du das gar nicht brauchst, wenn du die Logik (JavaScript) sauber vom Markup (HTML) trennst, also keine onmouseover- und onmouseout-Attribute verwendest.

Stattdessen beschreibst du das Verhalten bei onmouseover und onmouseout da wo’s hingehört – im JavaScript-Bereich:

  document.getElementById("menubox").onmouseover = function()  
  {  
    document.getElementById("bruecke").style.display="block";  
    document.getElementById("strich").style.display="block";  
    document.getElementById("menu").style.display="block";  
  }  
  document.getElementById("menubox").onmouseover = function()  
  {  
    document.getElementById("bruecke").style.display="none";  
    document.getElementById("strich").style.display="none";  
    document.getElementById("menu").style.display="none";  
  }  

Kannste so natürlich natürlich nicht im script-Element im head unterbringen, da zum Zeitpunkt der Verabreitung das Element "menubox" noch gar nicht existiert; das kommt ja erst später im body.

Deshalb erst nach dem Laden des Dokuments ausführen:

window.onload = function()  
{  
  document.getElementById("menubox").onmouseover = function()  
  {  
    document.getElementById("bruecke").style.display="block";  
    document.getElementById("strich").style.display="block";  
    document.getElementById("menu").style.display="block";  
  }  
  document.getElementById("menubox").onmouseover = function()  
  {  
    document.getElementById("bruecke").style.display="none";  
    document.getElementById("strich").style.display="none";  
    document.getElementById("menu").style.display="none";  
  }  
}

Damit du die Elemente "bruecke", "strich" und "menu" nicht bei dem onmouseover- und onmouseout-Ereignis immer wieder im Elementbaum suchen lassen musst, besser in Variablen speichern:

window.onload = function()  
{  
  var bruecke = document.getElementById("bruecke");  
  var strich  = document.getElementById("strich");  
  var menu    = document.getElementById("menu");  
  
  document.getElementById("menubox").onmouseover = function()  
  {  
    bruecke.style.display="block";  
    strich.style.display="block";  
    menu.style.display="block";  
  }  
  document.getElementById("menubox").onmouseover = function()  
  {  
    bruecke.style.display="none";  
    strich.style.display="none";  
    menu.style.display="none";  
  }  
}

Das bringste im script-Element im head oder einer externen Datei unter und versteckst das Script mit conditional comment vor den Browsern, die das nicht benötigen.

See ya up the road,
Gunnar

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)