我正在尝试做类似的事情......
if (window.onblur) {
setTimeout(function () {
DTitChange(name)
}, 1000)
} else {
document.title = dtit
}
window.onblur似乎没有工作,有什么我可以替换它吗?
答案 0 :(得分:1)
你的意思似乎不起作用?以下是您目前所说的内容:
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处理程序以清除超时,如果您希望在用户返回时停止发生超时。 :)
答案 1 :(得分:0)
您应该为window.onblur
分配一个功能,在您的问题中,您只测试属性onblur
是否存在。但是window.onblur
并不总是在每个浏览器中都能正常工作。文章Detecting focus of a browser window展示了如何设置它。在你的情况下,它将是这样的:
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;
}