Chrome扩展程序窗口监听器 - 最小化

时间:2014-06-18 08:41:56

标签: javascript google-chrome-extension

我正在创建一个小的chrome扩展程序,我无法弄清楚我应该做些什么来检查窗口是否被最小化。

到目前为止,我一直在使用chrome.tabs.onActivatedchrome.tabs.query来监听标签更改并且按预期工作,但现在我的问题是我还需要知道浏览器窗口何时最小化。

chrome.tabs.onActivated.addListener(function() {
    chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
        //do something
    });
});

我也查看了onFocusChanged,但这似乎只适用于多个浏览器窗口。

如何检查浏览器窗口是否已最小化?

2 个答案:

答案 0 :(得分:0)

如果您拥有窗口ID,那么很容易,您可以获得Window object

chrome.windows.get(windowId, function(win){
  if(window.state == "minimized") {
    /* ... */
  }
});

如果您需要当前窗口,请改为使用getCurrent

chrome.windows.getCurrent(function(win){
  if(window.state == "minimized") {
    /* ... */
  }
});

答案 1 :(得分:0)

这是使用代码必须进入background.js文件:

//check for fcuse tab
    chrome.windows.getCurrent(function(win){
        targetWindow = win;
    });

    alert(targetWindow.state=='minimized');

    alert(targetWindow.focused);

示例代码: 在 content.js 文件中:

chrome.runtime.sendMessage({
          url: window.location.href,
          name: `${lastmessage.name}`,
          message: `${lastmessage.body}`
        });

并将此代码放入 background.js 文件中:

var targetWindow = null;
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
    console.log(request.message);

    //check for fcuse tab
    chrome.windows.getCurrent(function(win){
        targetWindow = win;
    });

    alert(targetWindow.state=='minimized');

    alert(targetWindow.focused);

    //continu if 
    if(targetWindow.focused != false || targetWindow.state!='minimized')
        return 0;
})

参考:https://developer.chrome.com/docs/extensions/reference/tabs/#type-TabStatus