Thomas Meinike: Ermitteln des letzten fokusierten Elements

Beitrag lesen

Hallo,

Hat jmd vielleicht schon mal mit jScript ermittelt, welches Element in einer Form zuletzt den focus gehabt hat?

Verwende DOM-konform addEventListener() und fuer den IE attachEvent(), hier mal fuer ein Formular demonstriert:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 10/04</title>
<script language="JavaScript" type="text/javascript">
<!--

var dom=false,ie=false;

function Init()
{
  var f=document.getElementById("formular");
  if(f.addEventListener)
  {
    dom=true;
    f.addEventListener("focus",CheckFocus,true);
  }
  else if(f.attachEvent)
  {
    ie=true;
    for(i=0;i<f.childNodes.length;i++)if(f.childNodes.item(i).nodeName.toLowerCase()=="input")f.childNodes.item(i).attachEvent("onfocus",CheckFocus);
  }
}

function CheckFocus(event)
{
  if(dom)alert("Ereignis kam von Element\n"+event.target.nodeName.toLowerCase()+" mit name=""+event.target.name+"".");
  else if(ie)alert("Ereignis kam von Element\n"+event.srcElement.nodeName.toLowerCase()+" mit name=""+event.srcElement.name+"".");
}

//-->
</script>
</head>
<body onload="Init()">
<form id="formular" action="">
<input type="text" name="a">
<input type="text" name="b">
<input type="text" name="c">
<input type="text" name="d">
<input type="text" name="e">
</form>
</body>
</html>

Der IE kennt auch noch activeElement(): http://www.styleassistant.de/tips/tip69.htm.

MfG, Thomas