Browser extension 如何在crossrider中检查浏览器是否处于活动状态?

Browser extension 如何在crossrider中检查浏览器是否处于活动状态?,browser-extension,crossrider,Browser Extension,Crossrider,我需要在扩展中使用时间计算浏览器。如果我可以检查浏览器是否处于活动状态,那么计算时间就很容易了。这在crossrider中是如何实现的 var focused = true; window.onfocus = window.onblur = function(e) { focused = (e || event).type === "focus"; } alert(focused); 我在background.js中尝试了这段代码,但即使最小化浏览器窗口,它也始终显示“true”。焦点

我需要在扩展中使用时间计算浏览器。如果我可以检查浏览器是否处于活动状态,那么计算时间就很容易了。这在crossrider中是如何实现的

var focused = true;
window.onfocus = window.onblur = function(e) {
    focused = (e || event).type === "focus";
}
alert(focused);

我在background.js中尝试了这段代码,但即使最小化浏览器窗口,它也始终显示“true”。

焦点和模糊事件在任何扩展的后台范围中都不可用,即使没有使用Crossrider

常见的解决方案是使用扩展范围(extension.js)检测事件,然后使用将信息传递到后台页面

以代码为基础,以下示例将帮助您实现目标:

extension.js

appAPI.ready(function($) {
  window.onfocus = window.onblur = function(e) {
    appAPI.message.toBackground({
      focus: (e || event).type === "focus"
    });
  }
});
appAPI.ready(function($) {
  appAPI.message.addListener(function(msg) {
    console.log('focus: '+msg.focus);
  });
});
background.js

appAPI.ready(function($) {
  window.onfocus = window.onblur = function(e) {
    appAPI.message.toBackground({
      focus: (e || event).type === "focus"
    });
  }
});
appAPI.ready(function($) {
  appAPI.message.addListener(function(msg) {
    console.log('focus: '+msg.focus);
  });
});
[双闭环:我是一名交叉骑手员工]