我知道这不应该那么难,但我在Google上找不到答案。如何清除javascript中的焦点?
我想执行一段JavaScript,它将清除所有焦点,而无需提前知道焦点在哪个元素上。它必须在Firefox 2以及更现代的浏览器上工作。
有没有很好的方法来做到这一点?
我知道这不应该那么难,但我在Google上找不到答案。如何清除javascript中的焦点?
我想执行一段JavaScript,它将清除所有焦点,而无需提前知道焦点在哪个元素上。它必须在Firefox 2以及更现代的浏览器上工作。
有没有很好的方法来做到这一点?
.focus()
然后.blur()
其他东西在你的页面上是任意的。由于只有一个元素可以获得焦点,因此将其转移到该元素,然后移除。
有没有办法让一个不可见的元素具有焦点? – Andres 2010-03-26 01:45:06
我不是那种最好的方法的专家;但你一定可以将它定位在屏幕外或者位于“overflow:clip”风格元素的范围之外。但是您可以使用页面上已存在的字段。或者只是为了这个目的创建一个并再次删除它。 – 2010-03-26 02:02:37
我认为将焦点设置为屏幕外的元素会强制滚动到该元素。但是,您可以为此目的创建一个不可见的元素。这就是说,一些浏览器可能很难删除插入符号。只有blur()可能会更好。您仍然可以通过keyup(keydown)事件处理函数获取键。 – 2015-06-04 23:54:19
---编辑----
技术上:document.activeElement.blur()
----编辑2 ----
function onElementFocused(e)
{
if (e && e.target)
document.activeElement = e.target == document ? null : e.target;
}
if (document.addEventListener)
document.addEventListener("focus", onElementFocused, true);
dummyElem.focus()其中dummyElem是隐藏对象(例如,具有负zIndex)?
你可以调用window.focus();
但移动或失去焦点必然会干扰任何使用Tab键来避开页面的人。
您可以侦听键码13,并在按下Tab键时放弃效果。
document.activeElement.blur();
在IE9上工作不正确 - 如果活动元素是文档主体,则模糊整个浏览器窗口。最好检查一下这种情况:
if (document.activeElement != document.body) document.activeElement.blur();
明确焦点是什么意思? - 它与模糊相同吗? – plodder 2010-03-26 01:36:23
我想让它在浏览器中没有元素有焦点。 – Andres 2010-03-26 01:42:16