WauWau: Browserabsturz durch Eventhandler (Opera, IE)

Beitrag lesen

Hallo,

Bitte mal folgendes als .html/.htm-Datei speichern:

------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
<head>
  <title>Browserabsturz IE</title>
  <script language="JavaScript">
function mouse(e, state)
{
   // e     = übergebenes [this]
   // state = 0 -> Aufruf weil Maus runter ist
   //         1 -> Aufruf weil Maus drauf ist

if(state == 1)
     e.style.backgroundColor = "#D8E2EF";
   else
     e.style.backgroundColor = "#BED0E5";
}

function focus(e, state, prevalue)
{
   // e, state => wie in mouse()
   // prevalue = true -> "(optional)"-Text war vorher da
   //            false-> Textfeld war vorher leer

if(state == 1)
     e.style.backgroundColor = "#D8E2EF";
   else
     e.style.backgroundColor = "#BED0E5";
}
  </script>
</head>
<body>

<p>Hier könnte <i>Kontakt</i> oder <i>E-Mail</i> stehen, auf jeden Fall aber finde ich einen sogenannten <i>Form-Mailer</i> besser als einen E-Mail-Link, ganz abgesehen davon, dass es Programme (sogenannte <i>Robots</i>) gibt, die das Internet nach E-Mail-Adressen durchsuchen - und ihnen dann Spam zuschicken. Du kannst von Glück reden, dass du keinen Spam bekommst (wieso eigentlich nicht?)</p>
    <form action="kontakt-done.php" method="post">
    <table id="kontakt">
    <tr>
      <th>Name:</th>
      <td><input name="absender" type="text" class="text" onMouseover="mouse(this,1);" onMouseout="mouse(this,0);" onFocus="focus(this, 1);" onBlur="focus(this,0);" /></td>
    </tr>
    <tr>
      <th>E-Mail:</th>
      <td><input name="email" type="text" class="text" onMouseover="mouse(this, 1);" onMouseout="mouse(this, 0);" onFocus="focus(this, 1);" onBlur="focus(this, 0, true);" value="(optional)" /></td>
    </tr>
    <tr>
      <th>Betreff:</th>
      <td><input name="betreff" type="text" class="text" onMouseover="mouse(this, 1);" onMouseout="mouse(this, 0);" onFocus="focus(this, 1);" onBlur="focus(this, 0, true);" value="(optional)" /></td>
    </tr>
    <tr>
      <th>Nachricht:</th>
      <td><textarea name="text"></textarea></td>
    </tr>
    <tr>
      <th> </th>
      <td><input type="submit" class="button" value="abschicken" /> <input type="reset" class="button" value="leeren" /></td>
    </tr>
    </table>
    </form>
</body>
</html>
------------------------------------------------------------------------------

Das CSS habe ich mal rausgelassen.

So, wenn man nun das Texteingabefeld Name anklickt, funktioniert noch alles so wie es soll. Verlässt man es jedoch, und klickt auf das E-Mail-Eingabefeld, springt der Cursor zwischen beiden Feldern rum.

Mein Opera 7.03 hats sogar noch geschafft, beim KLick auf "Betreff" zwischen 3 Feldern rumzuspringen, danach hatn auch er sich aufgehängt.
Der IE6 hat sich schon nach 2 Eingabefeldern (wie oben beschrieben) aufgehängt.

Was ist hier etwa falsch?
Was muss hier geändert werden?

Vielen dank,

WauWau