【发布时间】:2011-07-05 20:01:14
【问题描述】:
问题是,我正在制作一个类似于聊天的程序,它需要知道用户是否离开了窗口,或者更改到另一个窗口或选项卡,以允许其他用户看到其他用户没有看到页面。
我认为窗口事件focusout 可以解决我的问题,但是,它存在一些问题。
第一:
它不会仅在用户离开窗口时触发,如果他们专注于输入字段然后单击页面中的其他任何位置,事件就会触发。这显然是不能容忍的。
我在 Firefox 中设法解决了这个问题。在 Firefox 上,当这种情况发生时,浏览器会触发一次 focusout 事件。但是,如果您真的离开窗口,它会触发两次。所以,一点点编程就变了。
然后是第二个问题:
Chrome,我相信其他浏览器的行为可能相同,无论您做什么,都只会触发一次 focusout 事件。离开窗口,将焦点从输入更改为页面,都是一样的,所以我的编程在那里不起作用。
有谁知道模拟所需行为的方法?或者让 Chrome 和其他可能的浏览器表现得像 Firefox 或其他什么的方法?
【问题讨论】:
-
我不认为你想做的事在今天的浏览器上是可行的。
-
你试过
$(document).bind("mouseleave", function(){...})吗? -
@Pointy
window.onblur处理程序工作得很好。每当用户切换到另一个选项卡时,都会在窗口对象上触发 blur 事件。 -
@Šime Vidas 好吧,我遇到了问题,但那是前一段时间了,我最近没有尝试过。如果它有效,那么这至少对 OP 来说是个好消息:-)
-
是的,这和 Šime 一样可悲。
标签: javascript jquery focus jquery-events