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。