我需要在扩展程序中使用时间来计算浏览器。如果我可以检查浏览器是否处于活动状态,那么很容易计算时间。这怎么可能在crossrider?
var focused = true;
window.onfocus = window.onblur = function(e) {
focused = (e || event).type === "focus";
}
alert(focused);
我在background.js中尝试了这个代码,但即使我最小化浏览器窗口,它总是显示“true”。
答案 0 :(得分:7)
焦点和模糊事件在任何扩展的后台范围内都不可用,即使不使用Crossrider也是如此。
常见的解决方案是使用扩展范围( extension.js )来检测事件,然后使用messaging将信息传递到后台页面。
以您的代码为基础,以下示例可帮助您实现目标:
<强> extension.js 强>
appAPI.ready(function($) {
window.onfocus = window.onblur = function(e) {
appAPI.message.toBackground({
focus: (e || event).type === "focus"
});
}
});
<强> background.js 强>
appAPI.ready(function($) {
appAPI.message.addListener(function(msg) {
console.log('focus: '+msg.focus);
});
});
[ Diclosure :我是Crossrider员工]