如何确定重点在哪里?

Jon*_*n M 15 html javascript focus onblur

这个问题曾经在这里提出过,但几年前,当时没有跨平台的解决方案(除了setTimeout解决方案,这真的不是很方便).

我想做,onblur="foo(parm);"并且foo能够确定哪个元素现在具有焦点.

我正在使用常规的javascript; 请不要这个jQuery.

这些天有可能吗?

qwe*_*ymk 7

你可以尝试这样的事情:

function whereDidYouGo() {
    var all = document.getElementsByTagName('*');

        for (var i = 0; i < all.length; i++)
            if (all[i] === all[i].ownerDocument.activeElement)
                return all[i];
}
Run Code Online (Sandbox Code Playgroud)

编辑:

function whereDidYouGo() { return document.activeElement; }
Run Code Online (Sandbox Code Playgroud)

  • 嗯.有趣.在`activeElement`上做一些阅读.难道我不能做`elementWithFocus = document.activeElement;`? (2认同)
  • @WolfgangAdamec——显然不是。在某些浏览器中,如果我不使用 setTimeout,我会返回“body”。在IE8中,不需要超时。在 FF 18.0.1 中,需要 setTimeout。在 Chrome 中,锚点似乎没有获得焦点。[jsfiddle-ige](http://jsfiddle.net/UtDLS/2/) (2认同)