blockly > IFocusableNode > getFocusableElement
IFocusableNode.getFocusableElement() 方法
傳回可明確要求接收焦點的 DOM 元素。
重要事項:請注意,這個元素應在網頁上顯示,因為系統會明確將焦點放在這個元素上,並根據目前的焦點狀態 (即模糊、主動聚焦和被動聚焦),變更其樣式。元素會附加兩種樣式之一 (如果沒有樣式,表示模糊/未聚焦):- blocklyActiveFocus - blocklyPassiveFocus
傳回的元素也必須指定有效 ID,且這個 ID 在整個頁面中不得重複。如果 ID 不夠獨特,可能會導致 FocusManager 實際聚焦的節點,與您嘗試聚焦的節點 (例如透過滑鼠點擊) 相同 ID。
如果節點曾透過 FocusManager.focusNode() 或 FocusManager.focusTree() 取得焦點,傳回的元素就必須顯示。元素可以隱藏,直到呼叫 onNodeFocus() 為止,也可以透過呼叫 onNodeBlur() 隱藏。
預期在節點的生命週期內,實際傳回的元素不會變更 (也就是說,其屬性可以變更,但絕不會傳回新元素)。此外,在節點和 FocusManager 的整個生命週期中,傳回的元素都會覆寫 tabindex。
如果節點需要直接成為焦點,而不必先透過 FocusManager 成為焦點,則必須自行設定索引標籤。
Signature:
getFocusableElement(): HTMLElement | SVGElement;
傳回:
HTMLElement | SVGElement
HTMLElement 或 SVGElement,兩者皆可接收焦點,並以主動或被動聚焦的方式,在節點中以視覺化方式呈現。