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

Beitrag lesen

Hallo,

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";
  }
}

  
Kleiner Hinweis:  
  
Expression Statements werden in JavaScript mit einem Semikolon beendet. Das ist optional, weil sie [automatisch eingefügt](http://bclary.com/log/2004/11/07/#a-7.9) werden, gehört aber zum guten Stil, um eindeutigen Code zu schreiben.  
  
Genauso wie man hinter  
`bruecke.style.display = "block";`{:.language-javascript}  
ein Semikolon notiert, sollte man es auch hinter  
~~~javascript
window.onload = function () {  
   ...  
};

und so weiter. Beides sind Expression Statements mit einem Assignment Operator, dass da nun beim letzteren eine Function Expression enthalten ist, ändert daran nichts.

Generell treten bei solchen Closures potenziell Memory-Leaks im IE 6 auf. Hier gibts zwar keine kreisförmige Referenzkette, aber man müsste schauen, ob Elementknoten → onmouseover → Event-Handler-Closure → andere Elementknoten Probleme macht.

Mathias