blockly > IFocusableNode > getFocusableElement

IFocusableNode.getFocusableElement() 方法

返回可明确请求接收焦点的 DOM 元素。

重要提示:请注意,此元素应在网页上具有视觉呈现效果,因为系统会明确聚焦于此元素,并根据其当前聚焦状态(即模糊、主动聚焦和被动聚焦)更改其样式。该元素将附加以下两种样式之一(没有样式表示模糊/未聚焦):- blocklyActiveFocus - blocklyPassiveFocus

返回的元素还必须指定有效的 ID,并且此 ID 在整个网页中应该是唯一的。如果 ID 不够唯一,尝试聚焦一个节点(例如通过鼠标点击)可能会导致 FocusManager 实际聚焦另一个具有相同 ID 的节点。

如果节点通过 FocusManager.focusNode() 或 FocusManager.focusTree() 获得焦点,则返回的元素必须可见。允许元素在 onNodeFocus() 被调用之前处于隐藏状态,或者通过调用 onNodeBlur() 变为隐藏状态。

预计在节点的整个生命周期内,实际返回的元素不会发生变化(即,其属性可以更改,但不应返回新元素)。此外,在相应节点和 FocusManager 的整个生命周期内,返回的元素的 tabindex 将被覆盖。

如果节点需要能够直接聚焦,而无需先通过 FocusManager 聚焦,则必须设置自己的 Tab 键索引。

Signature:

getFocusableElement(): HTMLElement | SVGElement;

返回

HTMLElement | SVGElement

既可以接收焦点,又可以直观地表示为主动或被动聚焦的 HTMLElement 或 SVGElement。