【问题标题】:How can i check whether the browser is active or not in crossrider?如何检查浏览器是否在 crossrider 中处于活动状态?
【发布时间】:2015-08-18 14:22:58
【问题描述】:

我需要在扩展中使用时间来计算浏览器。如果我可以检查浏览器是否处于活动状态,那么很容易计算时间。这在crossrider中怎么可能?

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

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

【问题讨论】:

    标签: browser-extension crossrider


    【解决方案1】:

    焦点和模糊事件在任何扩展的背景范围内都不可用,即使是不使用 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 的员工]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2019-12-10
      • 2021-07-23
      相关资源
      最近更新 更多