如何检查对元素和窗口的关注?

时间:2009-11-12 07:13:18

标签: javascript

我想找到焦点上的哪个元素。此外,当用户打开多个窗口/标签时,我想知道焦点上的哪个窗口/标签。

3 个答案:

答案 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 objectevent functions的jQuery文档,它使跨浏览器方式更简单。

无法从Javascript访问多个浏览器窗口或标签页。

答案 2 :(得分:0)

这是 tip 。无论如何,您必须为页面上的每个输入元素添加事件处理程序。唯一的替代方案是仅限IE:document.activeElement