我如何检查浏览器是否在 crossrider 中处于活动状态?
How can i check whether the browser is active or not in crossrider?
我需要在扩展程序中计算浏览器使用时间。如果我可以检查浏览器是否处于活动状态,那么计算时间就很容易了。这在 crossrider 中怎么可能?
var focused = true;
window.onfocus = window.onblur = function(e) {
focused = (e || event).type === "focus";
}
alert(focused);
我在 background.js 中尝试了此代码,但它始终显示 "true",即使我最小化浏览器 window。
焦点和模糊事件在任何扩展程序的后台范围内都不可用,即使是那些不使用 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);
});
});
[披露:我是 Crossrider 员工]
我需要在扩展程序中计算浏览器使用时间。如果我可以检查浏览器是否处于活动状态,那么计算时间就很容易了。这在 crossrider 中怎么可能?
var focused = true;
window.onfocus = window.onblur = function(e) {
focused = (e || event).type === "focus";
}
alert(focused);
我在 background.js 中尝试了此代码,但它始终显示 "true",即使我最小化浏览器 window。
焦点和模糊事件在任何扩展程序的后台范围内都不可用,即使是那些不使用 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);
});
});
[披露:我是 Crossrider 员工]