gum*_*ape 160

使用文档的hasFocus方法.您可以在此处找到详细说明和示例: hasFocus方法

编辑:添加小提琴 http://jsfiddle.net/Msjyv/3/

HTML

Currently <b id="status">without</b> focus...
Run Code Online (Sandbox Code Playgroud)

JS

function check()
{
    if(document.hasFocus() == lastFocusStatus) return;

    lastFocusStatus = !lastFocusStatus;
    statusEl.innerText = lastFocusStatus ? 'with' : 'without';
}

window.statusEl = document.getElementById('status');
window.lastFocusStatus = document.hasFocus();

check();
setInterval(check, 200);
Run Code Online (Sandbox Code Playgroud)

  • 在此期间,你可以使用这样的东西来获得Opera中的功能:`if(typeof document.hasFocus ==='undefined'){document.hasFocus = function(){return document.visibilityState =='visible'; } (6认同)
  • 我尝试了上面的链接中的示例,它在IE7 +,Chrome和FF4中运行良好.为你+1. (3认同)
  • 比接受的答案更有用,我在窗口失焦时遇到定时器加载问题. (3认同)

use*_*716 78

我没有在其他浏览器中测试过这个,但它似乎可以在Webkit中使用.我会让你试试IE.:O)

尝试一下: http ://jsfiddle.net/ScKbk/

单击以开始间隔后,更改浏览器窗口的焦点以查看结果更改.再次,仅在Webkit中进行测试.

var window_focus;

$(window).focus(function() {
    window_focus = true;
}).blur(function() {
    window_focus = false;
});

$(document).one('click', function() {
    setInterval(function() {
        $('body').append('has focus? ' + window_focus + '<br>');
    }, 1000);
});?
Run Code Online (Sandbox Code Playgroud)

  • 使用`window.top`检查最顶层的窗口. (4认同)