我当前使用的代码是这个
var focus;
function focuswindow() { focus = true; }
function hidewindow() { focus = false; }
window.onfocus = focuswindow();
window.onblur = hidewindow();
这个想法是可以像这样使用
if( focus ) { //do something
}
但是它不起作用。此外,由于它是用于Chrome扩展程序的,因此仅需要在Chrome上运行(因此无需使用旧版IE东西)。
最佳答案
它不起作用的原因是您要立即调用函数,并将undefined
的返回值分配给onfocus
和onblur
。
相反,onfocus
和onblur
应该按名称引用函数。
试试这个:
window.onfocus = focuswindow;
window.onblur = hidewindow;
注意,我删除了
()
调用运算符。现在onfocus
和onblur
正在引用这些函数,并在事件发生时调用它们。关于javascript - 如何检测浏览器窗口是否处于事件状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3841671/