我想找到焦点上的哪个元素。此外,当用户打开多个窗口/标签时,我想知道焦点上的哪个窗口/标签。
答案 0 :(得分:2)
在纯JavaScript中(即没有任何框架,如jQuery,MooTools等):
var focusedElement;
document.addEventListener("focus", function(e) {
focusedElement = e.target;
}, true);
document.addEventListener("blur", function(e) {
focusedElement = null;
}, true);
基本上,每当元素获得焦点时,我们将该元素保存到变量中,当元素失去焦点时,我们重置变量。
在HTML 5中,有一个用于访问当前焦点元素的特定属性:
var focusedElement = document.activeElement;
答案 1 :(得分:1)
使用jQuery,您可以使用它来查找焦点:
$("body").bind("onfocus", function (e) {
alert("focus: " + e.target); // e.target is the element with focus
});
您只需要一个使用event delegation的处理程序 - 该事件会在处理之前渗透DOM树,因此您可以使用一个处理程序来处理整个文档。
查看event object和event functions的jQuery文档,它使跨浏览器方式更简单。
无法从Javascript访问多个浏览器窗口或标签页。
答案 2 :(得分:0)
这是 tip 。无论如何,您必须为页面上的每个输入元素添加事件处理程序。唯一的替代方案是仅限IE:document.activeElement