Chrome:是否可以检测丢失的窗口焦点到javascript控制台?

时间:2013-06-05 00:43:46

标签: javascript google-chrome

特定于谷歌浏览器:我正在尝试检测页面何时失去焦点,而不是当它失去焦点到javascript控制台/其他开发工具时(即页面仍然是主要焦点)。

有什么想法吗?

我已尝试使用window.onblurvisibilitychange个事件。

简短的用例:我正在开发游戏,出于某种原因,当它运行我的编辑器时(OSX上的sublime text 2)慢慢爬行。如果我改变窗口焦点,那很好。因此,当我进入我的编辑器时,我正试图暂停游戏,但当我在javascript控制台时让它保持运行

[编辑]

由于我的问题显然不清楚,试图澄清:我希望能够区分:

  • 切换标签,切换应用
  • 转到javascript控制台

2 个答案:

答案 0 :(得分:0)

因为您无法真正检测焦点是否在开发工具上,所以您可以做的最好的事情是检测您是否打开了开发工具:

var focused = true;

$(window).blur(function () {
    setTimeout(function () {
        if(!isInspectOpen()) {
            alert("Focus lost.");
            focused = false;
        }
    }, 500);
});
$(window).focus(function () {
    if(!focused) {
        alert("Focus gained.");
        focused = true;
    }
});

function isInspectOpen() {
    console.profile();
    console.profileEnd();
    if(console.clear) console.clear();
    return console.profiles.length > 0;
}
  

                http://jsfiddle.net/DerekL/NtPPR/

答案 1 :(得分:-1)

window.onfocus?我真的不明白你是什么意思,但看看这个参考。搜索“活动”:

DOM document reference

DOM reference

希望对你有所帮助!