Blockly > IFocusableNode

อินเทอร์เฟซ IFocusableNode

แสดงถึงทุกอย่างที่สามารถมีโฟกัสอินพุตได้

ลายเซ็น:

export interface IFocusableNode 

เมธอด

วิธีการ คำอธิบาย
canBeFocused()

ระบุว่าโหนดนี้อนุญาตให้โฟกัสหรือไม่ หากฟังก์ชันนี้แสดงผลเป็นเท็จ ระบบจะไม่เรียกใช้เมธอด IFocusableNode อื่นๆ

โปรดทราบว่าต้องระมัดระวังเป็นพิเศษหากการใช้งานฟังก์ชันนี้เปลี่ยนค่าที่ส่งคืนแบบไดนามิกตลอดอายุการใช้งานของโหนด เนื่องจากสภาพแวดล้อมบางอย่างอาจส่งผลต่อความสามารถในการโฟกัสขององค์ประกอบ DOM ของโหนดนี้ (เช่น องค์ประกอบมี tabindex เป็นบวกหรือ 0) นอกจากนี้ การเปลี่ยนจากค่าจริงเป็นค่าเท็จในขณะที่โหนดโฟกัสอยู่จะไม่เปลี่ยนโฟกัสปัจจุบันของโหนดหรือสถานะภายในของ FocusManager ทันที ดังนั้นฟังก์ชันบางอย่างของโหนดอาจถูกเรียกใช้ในภายหลังเมื่อไม่ได้โฟกัส (เนื่องจากก่อนหน้านี้ระบบถือว่าโหนดโฟกัสได้ในขณะที่โฟกัสอยู่)

โดยทั่วไปแล้วการติดตั้งใช้งานควรแสดงผลเป็น "จริง" เสมอในที่นี้ เว้นแต่จะมีสถานการณ์ที่ควรข้ามโหนดนี้เพื่อพิจารณาโฟกัส ตัวอย่างเช่น อาจรวมถึงการถูกปิดใช้ แบบอ่านอย่างเดียว การตกแต่งด้วยภาพอย่างเดียว หรือโหนดที่ไม่มีการแสดงภาพซึ่งต้องใช้การเชื่อมต่อนี้ (เช่น เนื่องจากการเชื่อมต่อระดับบนขยายการเชื่อมต่อนี้) โปรดคำนึงถึงแนวทางปฏิบัติแนะนำด้านการช่วยเหลือพิเศษเมื่อพิจารณาว่าควรโฟกัสโหนดหรือไม่ เนื่องจากแม้แต่องค์ประกอบที่ปิดใช้และอ่านอย่างเดียวก็ยังมักเกี่ยวข้องกับการให้บริบทขององค์กรแก่ผู้ใช้ (โดยเฉพาะเมื่อใช้โปรแกรมอ่านหน้าจอ)

getFocusableElement()

แสดงผลองค์ประกอบ DOM ที่ขอรับโฟกัสได้อย่างชัดเจน

สำคัญ: โปรดทราบว่าองค์ประกอบนี้ควรมีลักษณะที่มองเห็นได้ในหน้าเว็บ เนื่องจากทั้งจะมีการโฟกัสอย่างชัดเจนและมีการเปลี่ยนรูปแบบตามสถานะโฟกัสปัจจุบัน (เช่น เบลอ โฟกัสที่ใช้งานอยู่ และโฟกัสแบบพาสซีฟ) องค์ประกอบจะมีรูปแบบใดรูปแบบหนึ่งต่อไปนี้แนบอยู่ (หากไม่มีรูปแบบแสดงว่าเบลอ/ไม่ได้โฟกัส) - blocklyActiveFocus - blocklyPassiveFocus

องค์ประกอบที่แสดงผลต้องมีรหัสที่ถูกต้องด้วย และรหัสนี้ควรไม่ซ้ำกันในทั้งหน้า หากไม่มีรหัสที่ไม่ซ้ำกันอย่างถูกต้อง อาจส่งผลให้การพยายามโฟกัสโหนดหนึ่ง (เช่น ผ่านการคลิกเมาส์) ทำให้ FocusManager โฟกัสโหนดอื่นที่มีรหัสเดียวกันแทน

องค์ประกอบที่ส่งคืนต้องมองเห็นได้หากมีการโฟกัสโหนดผ่าน FocusManager.focusNode() หรือ FocusManager.focusTree() ระบบอนุญาตให้ซ่อนองค์ประกอบจนกว่าจะมีการเรียกใช้ onNodeFocus() หรือซ่อนด้วยการเรียกใช้ onNodeBlur()

คาดว่าองค์ประกอบที่ส่งคืนจริงจะไม่เปลี่ยนแปลงตลอดอายุของโหนด (กล่าวคือ คุณสมบัติขององค์ประกอบอาจเปลี่ยนแปลงได้ แต่ไม่ควรส่งคืนองค์ประกอบใหม่) นอกจากนี้ องค์ประกอบที่ส่งคืนจะมีแอตทริบิวต์ tabindex ที่เขียนทับตลอดวงจรของโหนดและ FocusManager นี้

หากโหนดต้องมีความสามารถในการโฟกัสโดยตรงโดยไม่ต้องโฟกัสผ่าน FocusManager ก่อน โหนดนั้นจะต้องตั้งค่าดัชนีแท็บของตัวเอง

getFocusableTree() แสดงผลทรีหลักที่ใกล้ที่สุดของโหนดนี้ (ในกรณีที่ทรีมีทรีที่แตกต่างกันอยู่ใต้ทรีนั้น) ซึ่งแสดงถึงทรีที่โหนดนี้เป็นของ
onNodeBlur()

เรียกใช้เมื่อโหนดนี้สูญเสียโฟกัสที่ใช้งานอยู่ กล้องอาจยังคงมีโฟกัสแบบพาสซีฟ

ซึ่งมีข้อจำกัดในการใช้งานเหมือนกับ onNodeFocus()

onNodeFocus()

เรียกใช้เมื่อโหนดนี้ได้รับโฟกัสที่ใช้งานอยู่

โปรดทราบว่าการติดตั้งใช้งานสามารถเปลี่ยนตัวแก้ไขระดับการเข้าถึงได้ แต่ควรหลีกเลี่ยงสิ่งต่อไปนี้ - การสร้างหรือนำองค์ประกอบ DOM ออก (รวมถึงผ่านโปรแกรมแสดงผลหรือลิ้นชัก) - การส่งผลต่อโฟกัสผ่านการเรียกใช้ DOM focus() หรือ FocusManager