当窗口聚焦时,Chrome会读取,也就是打开

时间:2013-08-08 04:08:24

标签: javascript google-chrome google-chrome-extension

我在编程时仍然相当新。我以前玩过JavaScript,但对我来说仍然很棘手。

我对谷歌Chrome的扩展有了一个好主意 - 将来将它移植到其他浏览器会很不错。目前我认为Google Chrome将是最简单的开发方式。

我调查了一下并完成了kitties tutorial on the extensions site

从那里开始它很有意义 - 大部分都很容易,但我的想法听起来不可能。简单地说,当选择窗口或聚焦在屏幕上时,扩展会自动重新加载浏览器。不按 Ctrl + R (PC)或 Cmd + R (Mac)或重新加载来节省时间每次开发人员检查代码更新时按钮。

我正在阅读API文档并找到了该方法 chrome.browserAction.onClick,有chrome.browserAction.focused吗?这个想法是否可行?

我还必须考虑多个操作系统访问Chrome。我想知道Mac OS,Linux和Windows版本是否需要不同的JavaScript指令来解决这个问题?这个简单的想法势不可挡......

感谢提前输入:)

1 个答案:

答案 0 :(得分:1)

听起来你想要使用chrome.windows.onFocusChanged

  

当前焦点窗口发生变化时触发。如果所有镀铬窗口都失去焦点,则为chrome.windows.WINDOW_ID_NONE。注意:在某些Linux窗口管理器上,WINDOW_ID_NONE将始终在从一个chrome窗口切换到另一个窗口之前立即发送。

以下是如何重新加载新聚焦窗口的活动选项卡的示例:

chrome.windows.onFocusChanged.addListener(function(windowId) {
    if (windowId != chrome.windows.WINDOW_ID_NONE) {
        chrome.tabs.query({ active:true, windowId:windowId }, function(tabs) {
            if (tabs.length == 1) {
                var tab = tabs[0];
                chrome.tabs.reload(tab.id);
            }
        });
    }
});

您还需要在清单中declare the tabs permission