一个<div tabindex="-1">
元素可能有一个focusout
监听器。
每当焦点更改到页面中的另一个元素(或什么都没有)时,该事件就会触发。
但是,只要包含的浏览器选项卡或窗口失去焦点,它也会触发。这可能是由多种原因引起的:键ALT+TAB
、WINDOWS
用户在另一个应用程序上单击鼠标或用户打开开发者控制台。
在处理 时FocusEvent
,有没有办法区分由于页面内或页面外的焦点更改而触发的事件?
顺便说一句,FocusEvent.relatedTarget
是可用的。然而,它似乎null
既是当焦点移到页面外时,又有时是当它移到页面内的另一部分时(即一个不能“接收”焦点的元素)。UIEvent.sourceCapabilities
似乎也可用,并且似乎null
在整个页面失去焦点时可靠地运行,但我不确定这对于解决这个问题有多可靠。
任何帮助将非常感激。