我知道这应该没那么难,但我在谷歌上找不到答案.

我想执行一段javascript,它将清除焦点所在的任何元素,而不提前知道焦点所在的元素.它必须在Firefox2和更现代的浏览器上运行.

有什么好办法可以做到这一点吗?

推荐答案

答案: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);

Javascript相关问答推荐

React中的表格中 Select Radio按钮

为什么新的Promises会在不需要的情况下被用来等待?

使用JavaScript更改json值顺序

如何在react + react路由域名中使用DeliverBrowserRouter?

如何expose 像React在onChange、onClick等中所做的那样的参数?

如何使用JavaScript动态地将CSS应用于ToDo列表?

使用CDO时如何将Vue组件存储在html之外?

添加/删除时React图像上传重新渲染上传的图像

如何解决CORS政策的问题

仅针对RTK查询中的未经授权的错误取消maxRetries

使用useEffect,axios和useParams进行react测试

在观察框架中搜索CSV数据

Websocket错误—有一个或多个保留位开启:reserved1 = 1,reserved2 = 0,reserved3 = 0

禁用.js文件扩展名并从目录导入隐式根index.js时,找不到NodeJS导入模块

Rxjs流中生成IMMER不能在对象上操作

自定义确认组件未在vue.js的v菜单内打开

更新Redux存储中的对象数组

Jexl to LowerCase()和Replace()

在GraphQL解析器中修改上下文值

使用CEPRESS截取时,cy.Wait()在等待5000ms的第一个路由请求时超时