当窗口处于后台时,我的页面应该只播放通知声音。我可以跟踪 window.onfocus
和 window.onblur
事件来注意焦点状态的变化。然而,我不知道窗口是否会加载焦点,因为它可能在后台标签中加载。
在收到 onfocus
/onblur
事件之前,如何决定是否播放声音?
当窗口处于后台时,我的页面应该只播放通知声音。我可以跟踪 window.onfocus
和 window.onblur
事件来注意焦点状态的变化。然而,我不知道窗口是否会加载焦点,因为它可能在后台标签中加载。
在收到 onfocus
/onblur
事件之前,如何决定是否播放声音?
你能不能假设它是模糊加载的,然后在收到任何类型的事件(keydown/mousemove)时立即将状态更改为聚焦?
当页面最初打开(在前台)时,应触发onfocus事件。至少在FF3/IE8中是这样的。
因此,您可以在初始状态下启用声音,当触发onfocus时将其关闭,并在触发onblur时重新启用它们。
mousemove
事件,请改用mousedown
事件。在此处尝试:http://www.quirksmode.org/dom/events/tests/mousemove.html - Ali Shakiba