0

我目前正在开发一个 firefox 扩展,它会定期(每 2 分钟)检查一些服务器端 XML 文件。我想添加以下功能:

每当用户处于非活动状态 X 分钟时,检查间隔就会延长 Y 的乘数,直到达到 Z 的限制。为此,我需要不活动时间。这个值(或类似的值)是否已经由 firefox 在内部生成?如果是这样:如何从我的扩展程序访问它?如果没有:有没有办法自己生成它?

4

3 回答 3

2

我希望如果您覆盖 browser.xul,您应该能够在浏览器级别挂钩事件,而不是弄乱单个页面。XPCOM 有一个空闲服务,应该可以从扩展中获取它。

于 2009-08-27T23:07:54.180 回答
0

您只能在浏览器窗口/选项卡中检查用户是否处于非活动状态。这可以使用javascript来实现。

onbody load -> 将时间存储在 lastactivitytime ()

onmouse 移动 -> 存储时间 lastactivitytime (document.onmousemove)

on keypress -> 存储时间 lastactivitytime (document.onkeypress)

每次您的时间间隔到期时,检查该值与当前时间。

如果窗口未激活 onblur 事件,则停止轮询句号

于 2009-08-27T11:48:57.430 回答
0

您不会知道用户是否在另一个窗口中处于活动状态。如果这对您来说没问题,那么您应该将诸如 mousemove、keydown、mousescroll (?) 等事件的侦听器附加到每个打开页面的主体,并通过某些内部 FF 方式侦听创建?关闭选项卡。如果某些听众在 X 分钟内没有被触发,那么您就会处于不活动状态。

于 2009-08-27T11:51:47.020 回答