【问题标题】:Is it possible to change document.activeElement in JavaScript?是否可以在 JavaScript 中更改 document.activeElement?
【发布时间】:2011-04-29 01:46:20
【问题描述】:

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

【问题讨论】:

    标签: javascript focus


    【解决方案1】:

    在 IE 中,使用要成为活动元素的元素的 setActive() 方法。在其他支持activeElement的浏览器中,可以使用元素的focus()方法,只要元素能够接收焦点(表单元素、可编辑元素、设置tabindex的元素)。

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

    document.activeElement.blur();
    

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    • element.focus 仅在定义了 element.tabindex 时才在 Chrome 55 中有效。默认情况下,div 没有 tabindex,因此默认情况下 div.focus() 无效。在调用焦点之前的任何时候,只需将 element.tabindex 设置为某个值,例如“-1”。然后调用 element.focus。您将看到 now element === document.activeElement,这意味着像上/下这样的滚动键将应用于当前活动的元素。令人困惑!
    • 看起来应该是tabIndex
    • 我的 activeElement 是一个 iframe,这对我在 Chrome 84 上不起作用。.blur() 做到了。
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 2016-06-22
    相关资源
    最近更新 更多