Firefox扩展:在多个浏览器窗口中观察“用户交互 - 非活动”

时间:2012-08-04 12:45:05

标签: javascript events firefox javascript-events firefox-addon

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

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

,则用户将变为非活动状态

有没有办法区分不同的窗口,或者我必须处理它(不会坏,但仍然......)?非常感谢你提供任何暗示!

2 个答案:

答案 0 :(得分:2)

这是你必须自己实现的。它在很大程度上取决于“在特定窗口中不活动”的含义。我想你的意思是在这个窗口中缺少鼠标和键盘活动。因此,您必须为keydownkeyupmousemovemousedownmouseupDOMMouseScrolltouchstart添加一个监听器,touchendtouchmove个事件。这些事件的监听器将设置超时,例如一分钟但是,如果有的话,它将首先清除已存在的超时。这样,在用户停止在窗口中生成键盘或鼠标事件一分钟后,超时将在收到最后一个事件后一分钟触发。

答案 1 :(得分:0)

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