特定于谷歌浏览器:我正在尝试检测页面何时失去焦点,而不是当它失去焦点到javascript控制台/其他开发工具时(即页面仍然是主要焦点)。
有什么想法吗?
我已尝试使用window.onblur
和visibilitychange
个事件。
简短的用例:我正在开发游戏,出于某种原因,当它运行我的编辑器时(OSX上的sublime text 2)慢慢爬行。如果我改变窗口焦点,那很好。因此,当我进入我的编辑器时,我正试图暂停游戏,但当我在javascript控制台时让它保持运行
[编辑]
由于我的问题显然不清楚,试图澄清:我希望能够区分:
答案 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;
}
答案 1 :(得分:-1)