我有定期执行活动的JavaScript.当用户没有看到该站点时(即窗口或选项卡没有焦点),最好不要运行.
有没有办法使用JavaScript?
我的参考点:如果您使用的窗口未处于活动状态,则Gmail聊天会播放声音.
我有一个表单,只要其中一个字段获得焦点(即,用户单击或按 Tab 键进入该字段),就会显示一个带有有关该字段的额外信息的 div。非常简单:onFocus设置display: none;此信息窗格并将onBlur其删除。
我只希望在单击同一页面上的其他元素时触发这些事件,但在切换到另一个窗口或选项卡时它们也会触发。每次看到页面上的内容来来去去都非常烦人<Alt>-<Tab>。
JS有什么办法区分这两种blur事件吗?
编辑: 我做了一个codepen来说明这个问题。打开它,单击文本输入字段,然后按 alt-tab 切换到另一个窗口,可以看到一些文本消失了。
这是有问题的代码:
<input id="foo" />
<p>
Lorem ipsum dolor <span id="bar">sit amet consectetur</span>
</p>
Run Code Online (Sandbox Code Playgroud)
.hidden {
display: none;
}
Run Code Online (Sandbox Code Playgroud)
const inputField = document.getElementById('foo')
const hiddenSpan = document.getElementById('bar')
inputField.addEventListener('focus', () => hiddenSpan.classList.add('hidden'))
inputField.addEventListener('blur', () => hiddenSpan.classList.remove('hidden'))
Run Code Online (Sandbox Code Playgroud)