InternetExplorer: addEventListener übergibt keine Werte?

Pumaxs

Grünschnabel
Hallo zusammen,

wie bekomme ich folgenden Code im Internet Explorer ans laufen?

HTML:
<html>
 <head>
   <script type="text/javascript">
   function modifyText(new_text) {
     document.getElementById("divme").innerHTML = new_text.target.value;    
   }

   function load() { 
     document.getElementById("t").addEventListener("mouseover", modifyText, false); 
   } 
   </script> 
 </head> 
 
 <body onload="load();"> 
 <div id="divme">Zahl</div> 

 <select id="t"> 
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
 </select>
 
 </body> 
 </html>
 
Ungetestet

Javascript:
function modifyText(new_text) {
	new_text = new_text || window.event;
	
	document.getElementById("divme").innerHTML = (new_text.target || new_text.srcElement).value;
}

function load() {
	if(window.attachEvent) {
		document.getElementById("t").attachEvent("onmouseover", modifyText);
	} else {
		document.getElementById("t").addEventListener("mouseover", modifyText, false);
	}
}
 
Funktioniert leider nicht ganz. Wenn man in der DropDownListe über einen anderen Wert fährt ändert sich die Anzeige nicht sofort - nur beim ersten mal.

Noch eine Idee?
 
Es wäre vielleicht von Vorteil wenn du uns noch sagen würdest was das Script denn eigentlich machen soll?

Die Lösung von CPoly macht nämlich genau das, was sie soll. In IE, FF und Chrome.
 
Wenn ich in der DropDownListe mit der Maus über den Wert fahre soll sich der Text ändern. Im Internet Explorer ändert sich der Wert nur wenn ich über das DropDown-Element fahre aber nicht wenn ich einen Wert aus der Liste überfahre.
 
So funktionierts in Browsern, die sich an den Standard halten:
Javascript:
    function load() {
        var sOptions = document.getElementById("t").options;
        for(var i = 0, n = sOptions.length; i < n; i++){
          if(window.attachEvent) {
              sOptions[i].attachEvent("onmouseover", modifyText);
          } else {
              sOptions[i].addEventListener("mouseover", modifyText, false);
          }
        }
    }

IE < 9 ignorieren die Anweisung allerdings gekonnt, wie es mit IE9 aussieht kann ich nicht sagen.
 
Zuletzt bearbeitet von einem Moderator:
Zurück