<div tabindex="-1">
元素可能包含focusout
个侦听器。
只要焦点更改为页面中的其他元素(或任何内容),事件就会触发。
但是,只要包含浏览器选项卡或窗口失去焦点,它也会触发。这可能是由许多因素造成的:ALT+TAB
,WINDOWS
密钥,用户鼠标单击其他应用程序或用户打开开发人员控制台。
处理FocusEvent
时,有没有办法区分由于页面内或页面外的焦点变化而被解雇的事件?
另外,FocusEvent.relatedTarget
可用。但是,当焦点移到页面之外时,它似乎都是null
,有时当它转到页面内的另一个部分时(即,一个不能“接收”焦点的元素)。 UIEvent.sourceCapabilities
似乎也可用,并且当页面作为一个整体失去焦点时似乎可靠地null
,但我不确定这对于解决此问题有多可靠。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以使用Page Visibility API查看窗口/选项卡是否具有用户焦点
https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API