我目前正在开发一个firefox扩展,它会定期检查一些服务器端XML-File(每2分钟一次)。我想添加以下功能:
每当用户在X分钟内处于非活动状态时,检查间隔将延长Y的乘数,直到达到Z的极限。为了做到这一点,我需要不活动的时间。这个值(或类似的东西)是否已由firefox内部生成?如果是这样:我如何从我的扩展程序访问它?如果没有:有没有办法自己生成它?
答案 0 :(得分:2)
我希望如果你覆盖browser.xul,你应该能够在浏览器级别挂钩事件,而不是乱用各个页面。 XPCOM有一个Idle Service,从扩展程序ought to be possible获取。
答案 1 :(得分:0)
您只能在浏览器窗口/选项卡中检查用户是否处于非活动状态。这可以使用javascript实现。
onbody load - >将时间存储在lastactivitytime()
中onmouse movement - >存储时间lastactivitytime(document.onmousemove)
on keypress - >存储时间lastactivitytime(document.onkeypress)
每次间隔到期时,请检查值与当前时间。
如果窗口未激活onblur事件
,则停止轮询完全停止答案 2 :(得分:0)
您不会知道用户是否在另一个窗口中处于活动状态。如果你没关系,那么你应该将mousemove,keydown,mousescroll(?)等事件的监听器附加到每个打开页面的主体上,并通过一些内部FF方式监听创建?关闭标签。是否有一些听众没有在X分钟内被触发,那么你就是没有活动。