我当前使用的代码是这个

var focus;
function focuswindow() { focus = true; }
function hidewindow() { focus = false; }
window.onfocus = focuswindow();
window.onblur = hidewindow();

这个想法是可以像这样使用
if( focus ) { //do something
}

但是它不起作用。此外,由于它是用于Chrome扩展程序的,因此仅需要在Chrome上运行(因此无需使用旧版IE东西)。

最佳答案

它不起作用的原因是您要立即调用函数,并将undefined的返回值分配给onfocusonblur

相反,onfocusonblur应该按名称引用函数。

试试这个:

window.onfocus = focuswindow;
window.onblur = hidewindow;

注意,我删除了()调用运算符。现在onfocusonblur正在引用这些函数,并在事件发生时调用它们。

关于javascript - 如何检测浏览器窗口是否处于事件状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3841671/

10-09 07:38