首页 > 解决方案 > 在javascript中,如何消除文档中的任何焦点?

问题描述

我的意思是,有没有办法强制模糊?因此,如果任何组件(按钮、输入文本等)被聚焦,它将变得模糊,希望这是有道理的:)

就像 document.blur() 一样,我需要这个,因为每次用户按下 F5 时,我都需要在它刷新之前消除任何焦点。

标签: javascript

解决方案


您可以使用document.activeElement.blur(),但根据我的经验,即使您这样做了,某些元素总是会成为焦点。例如,在 Chrome 上body,即使在从(例如)移除焦点之后,以下内容也会获得焦点input

setInterval(() => {
    if (document.activeElement) {
        document.activeElement.blur();
    }
    console.log(document.activeElement && document.activeElement.nodeName);
}, 1000);
<input type="text" id="x">

但它确实消除了焦点input,也许这对您的用例来说已经足够了。


从您进一步解释情况的评论中,我倾向于认为您想要:

if (document.activeElement && document.activeElement !== document.body) {
    document.activeElement.blur();
}

推荐阅读