我正在尝试检测Firefox是否在前台运行(以跟踪在网站上花费的时间)。
有没有比跟踪新窗口被激活/停用更简单的方法?
tabs
模块提供activate
和deactivate
事件。- 另一种方法是页面可见性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
})