0

当用户处于非活动状态时,我试图在我的 Firefox 扩展中进行观察。我目前的解决方案来自一个类似的问题,在这里找到(见接受的答案)。它基本上工作得很好。

然而,我注意到,它似乎无法区分多个打开的浏览器窗口——也就是说,用户不能在一个窗口中处于活动状态,而在另一个窗口中处于非活动状态。目前,活动/非活动状态是所有 Firefox 窗口中的某种全局状态。因此,如果用户在所有打开的浏览器窗口中都处于活动状态,则用户变得真正不活动

有没有办法区分不同的窗口,还是我必须处理它(不会很糟糕,但仍然......)?非常感谢您对此的任何提示!

4

2 回答 2

2

这是您必须自己实施的事情。它还很大程度上取决于“在特定窗口中不活动”的含义。我猜你的意思是这个窗口中缺少鼠标和键盘活动。所以你必须为keydown, keyup, mousemove, mousedown, mouseup, DOMMouseScroll, touchstart, touchend,touchmove事件添加一个监听器。这些事件的侦听器将设置一个超时,例如一分钟。但是,如果有的话,它会首先清除已经存在的超时。这样,超时将在收到最后一个事件后一分钟触发,在用户停止在窗口中生成键盘或鼠标事件后一分钟。

于 2012-08-05T00:17:15.540 回答
0

观察者传递的subject参数应该是当前活动浏览器窗口的窗口。

于 2012-08-04T19:26:34.363 回答