是否可以检测用户何时切换到其他浏览器选项卡?

时间:2009-08-03 05:27:26

标签: javascript firefox

我正在尝试检测用户何时从当前浏览器标签切换到另一个标签。监听window.onblur在firefox中可以很好地检测用户何时将焦点切换到另一个窗口,但是当用户切换到另一个选项卡时似乎没有触发。但是,当从另一个选项卡切换到相关选项卡时,似乎会触发onfocus。

有没有办法检测用户何时离开当前标签?

2 个答案:

答案 0 :(得分:8)

如果你使用document.onBlur而不是window.onblur作为事件处理程序,那么在Firefox中它可以用于制表切换。

答案 1 :(得分:3)

这个示例代码似乎对我有用。我编辑了代码,当我切换标签时显示一个警告框(请不要这样做)。它导致无限循环;-)并且必须使用任务管理器关闭FF。

来源:http://www.thefutureoftheweb.com/blog/detect-browser-window-focus

function onBlur() {
    document.body.className = 'blurred';
};
function onFocus(){
    document.body.className = 'focused';
};

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