首页 > 解决方案 > 如果另一个元素已经聚焦,你如何聚焦 body 元素?

问题描述

如果另一个元素已经聚焦,你如何以编程方式将焦点放在body/元素上?document.body

调用document.body.focus()似乎不起作用,可能是因为body不可聚焦。

MDN

HTMLElement.focus() 方法将焦点设置在指定元素上,如果它可以被聚焦的话。

标签: javascripttypescript

解决方案


document.body如果您首先调用当前聚焦的元素, Chrome 和 Firefox 都会聚焦该元素.blur(),然后window.focus()立即调用。

完整解决方案(TypeScript):

    private focusBody = () => {
        if (document.activeElement instanceof HTMLElement) {
            document.activeElement.blur();
        }
        window.focus();
    };

推荐阅读