相关疑难解决方法(0)

有没有办法检测浏览器窗口当前是否处于活动状态?

我有定期执行活动的JavaScript.当用户没有看到该站点时(即窗口或选项卡没有焦点),最好不要运行.

有没有办法使用JavaScript?

我的参考点:如果您使用的窗口未处于活动状态,则Gmail聊天会播放声音.

javascript browser focus window

560
推荐指数
13
解决办法
25万
查看次数

切换选项卡/窗口时忽略模糊/焦点事件

我有一个表单,只要其中一个字段获得焦点(即,用户单击或按 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)

javascript dom-events

10
推荐指数
1
解决办法
2377
查看次数

标签 统计

javascript ×2

browser ×1

dom-events ×1

focus ×1

window ×1