嗯。。。在 Firefox 中,您可以使用来拉取被点击的元素。我期望对IE做同样的事情,但它似乎不起作用...但是,您可以从文档中提取新获得焦点的元素:explicitOriginalTarget
toElement
function showBlur(ev)
{
var target = ev.explicitOriginalTarget||document.activeElement;
document.getElementById("focused").value =
target ? target.id||target.tagName||target : '';
}
...
<button id="btn1" onblur="showBlur(event)">Button 1</button>
<button id="btn2" onblur="showBlur(event)">Button 2</button>
<button id="btn3" onblur="showBlur(event)">Button 3</button>
<input id="focused" type="text" disabled="disabled" />
警告:此技术不适用于因使用键盘对字段进行 Tab 键转换而导致的焦点更改,在 Chrome 或 Safari 中根本不起作用。使用的最大问题(IE除外)是,在处理事件之前,它不会一致地更新,并且在处理过程中可能根本没有有效的值!这可以通过Michiel最终使用的技术的变化来缓解:activeElement
blur
function showBlur(ev)
{
// Use timeout to delay examination of activeElement until after blur/focus
// events have been processed.
setTimeout(function()
{
var target = document.activeElement;
document.getElementById("focused").value =
target ? target.id||target.tagName||target : '';
}, 1);
}
这应该适用于大多数现代浏览器(在Chrome,IE和Firefox中测试),但需要注意的是,Chrome不会将焦点放在单击的按钮上(与选项卡式相比)。