4

简而言之; 我写了一个简单的聊天应用程序供我和朋友使用。当运行应用程序的窗口没有焦点(最小化或在其他窗口后面)并且有消息进来时,我想更改窗口标题栏以用作警报。就像 Google 的聊天应用程序在 GMail 中所做的一样。

一切都在 Firefox 和 Chrome 中完美运行,但在 IE7 中却没有(尚未测试 8)。

这是我用来确定窗口是否有焦点的代码。这可以用不同的方式写成也可以在 IE 中工作吗?此外,我愿意接受任何其他方法来完成同样的事情。提前谢谢了。

  $(window).bind("blur", function() {
    hasfocus = false;
  });

  $(window).bind("focus", function() {
    hasfocus = true;
  });
4

3 回答 3

2

我不认为谷歌聊天使用窗口来检查焦点。它使用与您聊天的用户的文本框。一旦文本框收到焦点“说...”停止循环。

您可能需要检查鼠标移动以查看窗口是否具有焦点。除此之外,我仍在尝试弄清楚如何在尝试保持页面活动时检查窗口的焦点。

于 2010-04-17T02:45:46.493 回答
2

这一点 jquery 将在 IE 和所有好的浏览器(chrome、ff 等)中工作。关键是 IE 支持的文档 focusin\focusout。

$(function(){
    $(window).bind('blur', function(){
        console.debug('window blur');
    });

    $(window).bind('focus', function(){
        console.debug('window focus');
    });
    // IE EVENTS
    $(document).bind('focusout', function(){
        alert('document focusout');
    });

    $(document).bind('focusin', function(){
        alert('document focusin');
    });
});
于 2011-04-05T18:45:55.393 回答
0

如果您尝试绑定到文档元素会发生什么?

于 2009-08-10T15:51:02.640 回答