Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查窗口是否有焦点?_Javascript_Focus - Fatal编程技术网

Javascript 如何检查窗口是否有焦点?

Javascript 如何检查窗口是否有焦点?,javascript,focus,Javascript,Focus,我正在尝试做类似的事情 if (window.onblur) { setTimeout(function () { DTitChange(name) }, 1000) } else { document.title = dtit } 不过window.onblur似乎不起作用,有什么可以替换的吗?您应该为window.onblur分配一个函数,在您的问题中,您只测试属性onblur是否存在。但是window.onblur并不总是在每个浏览器中都能正常工作

我正在尝试做类似的事情

if (window.onblur) {
    setTimeout(function () {
        DTitChange(name)
    }, 1000)
} else {
    document.title = dtit
}

不过window.onblur似乎不起作用,有什么可以替换的吗?

您应该为
window.onblur
分配一个函数,在您的问题中,您只测试属性
onblur
是否存在。但是
window.onblur
并不总是在每个浏览器中都能正常工作。本文将介绍如何设置此选项。在您的情况下,它将类似于:

function DTitBlur() {
    /* change title of page to ‘name’ */
    setTimeout(function () {
        DTitChange(name)
    }, 1000);
}

function DTitFocus() {
    /* set title of page to previous value */
}

if (/*@cc_on!@*/false) { // check for Internet Explorer
    document.onfocusin = DTitFocus;
    document.onfocusout = DTitBlur;
} else {
    window.onfocus = DTitFocus;
    window.onblur = DTitBlur;
}

你说似乎不起作用是什么意思?以下是您目前所说的:

If there's an onblur event handler:
    execute DTitChange once ever second.
Else 
    document.title = dtit
这可能不是你想要的。试一试

window.onblur = function () {
    setTimeout(function () { DTitChange(name) }, 1000);
};
另外,如果希望超时在用户返回时停止,请确保将onfocus处理程序设置为清除超时。:)