我知道这应该不难,但我在谷歌上找不到答案。
我想执行一段javascript,将从任何元素上清除焦点,而不知道提前哪个元素的焦点。它必须在firefox 2和更现代的浏览器上运行。
有什么好办法吗?
我知道这应该不难,但我在谷歌上找不到答案。
我想执行一段javascript,将从任何元素上清除焦点,而不知道提前哪个元素的焦点。它必须在firefox 2和更现代的浏览器上运行。
有什么好办法吗?
当前回答
我更喜欢document.activeElement?document.activeElement.blur()。
我正在使用vue & react:在我的情况下,我可以在组件之间的任何地方调用它,它将删除焦点。
其他回答
对于任何使用typescript的人,使用
(document.activeElement as HTMLElement).blur();
这确保元素的类型为HTMLElement
document.activeElement.blur();
在IE9上工作错误-如果活动元素是文档主体,它会模糊整个浏览器窗口。最好检查一下这种情况:
if (document.activeElement != document.body) document.activeElement.blur();
使用jQuery,它只是:$(this).blur();
dummyElem.focus()哪里dummyElem是一个隐藏对象(例如有负zIndex)?
答:document.activeElement
你可以使用document.activeElement.blur()
如果你需要支持Firefox 2,你也可以使用这个:
function onElementFocused(e)
{
if (e && e.target)
document.activeElement = e.target == document ? null : e.target;
}
if (document.addEventListener)
document.addEventListener("focus", onElementFocused, true);