我目前正在使用的代码是
var focus;
function focuswindow() { focus = true; }
function hidewindow() { focus = false; }
window.onfocus = focuswindow();
window.onblur = hidewindow();
这个想法是它可以像这样使用
if( focus ) { //do something
}
然而它不起作用。此外,它只需要在Chrome上工作(因此没有传统的IE内容),因为它适用于Chrome扩展程序。
答案 0 :(得分:3)
它不起作用的原因是您立即调用函数并将undefined
的返回值分配给onfocus
和onblur
。
相反,onfocus
和onblur
应该按名称引用这些功能。
试试这个:
window.onfocus = focuswindow;
window.onblur = hidewindow;
请注意,我删除了()
个呼叫运营商。现在onfocus
和onblur
正在引用这些函数,并会在事件发生时调用它们。