0

我有一个应用程序需要在它不处理键盘事件时通知它的用户。我一直在监视document.hasFocus()在 Firefox 和 IE(!)中可以满足我的需要,但在 Chrome 中却没有。

如果我从位置栏开始,则document.hasFocus()返回 false;当 I 时TAB,包含插件实例的文档获得焦点并document.hasFocus()返回 true;现在,如果我TAB再次,插件(在这种情况下为 Silverlight)获得焦点,并document.hasFocus()返回 false。

也许这是正确的行为,其他两个浏览器错误地返回 true,但如果是这种情况,我怎么知道浏览器窗口何时获得焦点?

4

1 回答 1

1

你可以这样尝试:

var hasFocus = false,
    toggleFocus = function() {
        hasFocus = !hasFocus
    };
window.addEventListener( 'focus', toggleFocus );
window.addEventListener( 'blur', toggleFocus );
于 2012-05-28T21:08:18.210 回答