browser - 通过Google Chrome扩展程序检测浏览器的焦点/焦点外

标签 browser google-chrome focus window

有没有一种方法可以找出Google chrome是聚焦还是聚焦?我正在创建一个应用程序,该应用程序需要知道用户当前是否正在使用浏览器。

通过将检测结果与Google扩展程序中的内容脚本联系起来,我尝试使用模糊和聚焦,但是问题是单击地址栏也会触发模糊事件。检测鼠标移动的方法与此相同,其中不会检测到将鼠标移动到查看区域之外。

我也尝试过查看onFocusChanged,但看来它只能检测Chrome窗口中的更改,而不能检测Chrome之外的应用程序。

有人对此有其他想法吗?另外,如果我改为为firefox创建附加组件,这会更容易吗?

谢谢!

最佳答案

您可以使用chrome.windows API进行监视。您将为onFocusChanged事件添加一个侦听器,如果该事件返回-1chrome.windows.WINDOW_ID_NONE,则您知道浏览器失去了焦点:

var inFocus = true;  // global boolean to keep track of state
chrome.windows.onFocusChanged.addListener(function(window) {
    if (window == chrome.windows.WINDOW_ID_NONE) {
        inFocus = false;
    } else {
        inFocus = true;
    }
});

Chrome.Window Doc

关于browser - 通过Google Chrome扩展程序检测浏览器的焦点/焦点外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574204/

相关文章:

html - 如何卡住 dom 树的状态(不使用 js "debugger"语句)来检查它?

html - 在 Chrome 中呈现的表情符号与在其他浏览器中呈现的宽度不同

google-chrome - Chrome 在本地主机上加载缓存文件

java - textFields 上的无限焦点循环

java - 如何重新关注在 Solaris 计算机上运行的 Swing Java GUI?

java - 防止专注于创建 Activity

javascript - 您可以使用 javascript 操作浏览器的 WebSocket 连接吗?

algorithm - Gecko(或任何其他布局引擎)如何呈现文档/页面?

html - 无法将 CSS 大纲重置为浏览器默认值

css - 使 Google Chrome 中的字体更清晰、更锐利