Прослушиватель окна расширения Chrome — при свернутом

#javascript #google-chrome-extension

#javascript #google-chrome-extension

Вопрос:

Я создаю небольшое расширение Chrome, и мне трудно понять, что я должен сделать, чтобы проверить, свернуто ли окно или нет.

Пока я использую chrome.tabs.OnActivated и chrome.tabs.запрос вместе, чтобы прослушать изменение вкладки, и он работает, как ожидалось, но теперь моя проблема в том, что мне также нужно знать, когда окно браузера свернуто.

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

Я также посмотрел на onFocusChanged, но, похоже, это работает только с несколькими окнами браузера.

Как проверить, что окно браузера свернуто?

Комментарии:

1. Какое это имеет отношение к C ? Или что-нибудь в названии?

2. Заголовок предпочтительно должен представлять собой краткое изложение текста вопроса. В нынешнем виде они кажутся очень несвязанными. Как сказал Xan, не могли бы вы сообщить нам, актуален ли вопрос в названии?

3. извините, я ввел заголовок другого вопроса, который я не отправлял, я изменил заголовок, чтобы он соответствовал вопросу.

Ответ №1:

Это просто, если у вас есть идентификатор окна, затем вы можете получить объект Window:

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

Если вам нужно текущее окно, используйте getCurrent вместо:

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

Комментарии:

1. Как мне добавить прослушиватель для изменения состояния окна?

2. К сожалению, я не думаю, что есть событие.

Ответ №2:

это код использования, который должен 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