嗯...在Firefox中,您可以explicitOriginalTarget
用来拉出被单击的元素。我希望toElement
对IE也能做到这一点,但是它似乎不起作用...但是,您可以从文档中拉出新集中的元素:
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" />
警告:这种技术并没有对重点工作的变化所造成的互联通过与键盘领域,并没有在所有的Chrome或Safari工作。使用的一个大问题activeElement
(IE除外)是未持续更新,直到之后的blur
事件已被处理,并在处理过程中可能根本没有有效的价值!通过改变Michiel最终使用的技术,可以缓解这种情况:
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不会将重点放在单击的按钮上(相对于选项卡式)。