javascript - 如果另一个元素已经获得焦点,如何使 body 元素获得焦点?
如果另一个元素已经获得焦点,如何以编程方式将焦点放在 body/document.body 元素上?
调用 document.body.focus() 似乎不起作用,可能是因为 body 不是可聚焦的。
MDN 说
HTMLElement.focus() 方法会将焦点设置到指定的元素上,如果它可以被聚焦。
答案#1
如果你先对当前聚焦的元素调用 .blur(),然后紧接着调用 window.focus(),Chrome 和 Firefox 都会将焦点设置到 document.body 元素上。
完整解决方案(TypeScript):
private focusBody = () => {
if (document.activeElement instanceof HTMLElement) {
document.activeElement.blur();
}
window.focus();
};
