Firefox SDK:跟踪 Firefox 是否在后台运行



我正在尝试检测Firefox是否在前台运行(以跟踪在网站上花费的时间)。

有没有比跟踪新窗口被激活/停用更简单的方法?

  • tabs模块提供activatedeactivate事件。
  • 另一种方法是页面可见性API,例如在PageMod中使用它。也将在浏览器窗口最小化时触发。

当浏览器窗口本身变得不聚焦时,这两者都不会触发 (AFAIK)。

我最终使用windows.browserWindows.on关闭并停用/打开并激活,再加上tabs.on激活,非活动,关闭,就绪,也 tabs.activeTab.id/url/title

var active = true
/////////////////////////////////////////////
// Active Firefox?
////////////////////////////////////////////
// testing purpose
//tmr.setInterval(function(){console.log(active)}, 500)
//
// detect if firefox is running in foreground
//
windows.browserWindows.on('open', function(window) {
    active = true
})

windows.browserWindows.on('activate', function(window) {
    active = true
})
//
// detect is firefox is running in background
//
windows.browserWindows.on('deactivate', function(window) {
    active = false
})
windows.browserWindows.on('close', function(window) {
    active = false
})

最新更新