是否可以在JavaScript中更改document.activeElement?

mga*_*mer 53 javascript focus

是否可以以编程方式更改document.activeElementJavaScript 中的属性值?

Tim*_*own 74

在IE中,使用setActive()您想要成为活动元素的元素的方法.在其他支持的浏览器中activeElement,您可以使用focus()元素的方法,只要元素能够接收焦点(表单元素,可编辑元素,带有tabindex集合的元素).

如果要将activeElement设置回默认值(<body>大多数浏览器中的元素),只需调用active元素的blur()方法:

document.activeElement.blur();
Run Code Online (Sandbox Code Playgroud)

  • 只记得为div元素设置tabindex =" - 1" (3认同)
  • 使用`document.activeElement.blur();`.答案已更新. (2认同)

Nic*_*ver 17

你可以只是.focus()你想要的元素,它将是新的document.activeElement.

  • 如果定义了element.tabindex,则element.focus仅在Chrome 55中有效.默认情况下,Div没有tabindex,因此默认情况下div.focus()无效.在调用焦点之前的任何时候,只需将element.tabindex设置为某个值,例如'-1'.然后调用element.focus.您将看到现在元素=== document.activeElement,现在意味着向上/向下的滚动键将应用于当前活动的元素.混乱! (19认同)