在JavaScript中,判断窗口是否获得焦点可以通过监听focus
和blur
事件来实现。以下是相关基础概念及实现方式:
focus
事件:当窗口、元素或文档获得焦点时触发。blur
事件:当窗口、元素或文档失去焦点时触发。可以通过为window
对象添加事件监听器来判断窗口焦点的变化。
// 定义一个变量来跟踪窗口焦点状态
let isWindowFocused = true;
// 当窗口获得焦点时触发
window.addEventListener('focus', () => {
isWindowFocused = true;
console.log('窗口获得了焦点');
});
// 当窗口失去焦点时触发
window.addEventListener('blur', () => {
isWindowFocused = false;
console.log('窗口失去了焦点');
});
// 如果你想在某个时刻检查窗口是否获得焦点,可以使用以下代码
if (isWindowFocused) {
console.log('当前窗口是获得焦点的状态');
} else {
console.log('当前窗口没有获得焦点');
}
focus
和blur
事件不会冒泡,因此不能使用事件委托。window
对象上,并且没有其他脚本阻止事件的默认行为或冒泡。focus
和blur
事件在大多数现代浏览器中都有良好的支持,但在某些旧版本的浏览器中可能存在兼容性问题。可以通过检测浏览器版本或使用polyfill来解决这些问题。领取专属 10元无门槛券
手把手带您无忧上云