0
我试图检测窗口/选项卡当前是否焦点或not.My代码工作正常,以检测焦点失去当我切换选项卡,但它失败,如果当前窗口被某些应用程序(音乐播放器或任何其他软件)。我知道重点检查可以用很多方式完成,但我有兴趣有一个基于我的代码的解决方案。可以有人告诉我为什么下面的代码不能按预期工作?为什么onblur不能正常发射?
$(document).ready(function() {
var hidden, change, vis = {
hidden: "visibilitychange",
mozHidden: "mozvisibilitychange",
webkitHidden: "webkitvisibilitychange",
msHidden: "msvisibilitychange",
oHidden: "ovisibilitychange" /* not currently supported */
};
for (hidden in vis) {
if (vis.hasOwnProperty(hidden) && hidden in document) {
change = vis[hidden];
break;
}
}
if (change)
document.addEventListener(change, onchange);
else if (/*@[email protected]*/false) // IE 9 and lower
document.onfocusin = document.onfocusout = onchange
else
window.onfocus = window.onblur = onchange;
function onchange (evt) {
evt = evt || window.event;
if (evt.type == "focus" || evt.type == "focusin")
window_focus = true;
else if (evt.type == "blur" || evt.type == "focusout")
window_focus = false;
else
window_focus = this[hidden] ? false : true;
}
});