Можете ли вы сфокусировать всплывающее окно из расширения Chrome - PullRequest
9 голосов
/ 24 января 2012

У меня есть расширение Chrome, которое выполняет window.open () при нажатии на значок расширений. (Он не может использовать традиционное всплывающее окно расширения Chrome из-за несоответствующей ошибки в Chrome). Мне интересно, есть ли способ сфокусировать всплывающее окно, если оно уже открыто. Chrome отключает window.focus (), но я подумал, что может быть способ сделать это в расширении Chrome.

Обновление: Для всех, кто интересуется, это код, который я использовал на своей странице:

var popupId;

// When the icon is clicked in Chrome
chrome.browserAction.onClicked.addListener(function(tab) {

  // If popupId is undefined then there isn't a popup currently open.
  if (typeof popupId === "undefined") {

    // Open the popup
    chrome.windows.create({
      "url": "index.html",
      "type": "popup",
      "focused": true,
      "width": 350,
      "height": 520
    }, function (popup) {
      popupId = popup.id;
    }); 

  } 
  // There's currently a popup open
  else {
     // Bring it to the front so the user can see it
    chrome.windows.update(popupId, { "focused": true });  
  }

});

// When a window is closed
chrome.windows.onRemoved.addListener(function(windowId) {
  // If the window getting closed is the popup we created
  if (windowId === popupId) {
    // Set popupId to undefined so we know the popups not open
    popupId = undefined;
  }
});

1 Ответ

11 голосов
/ 24 января 2012

Вместо использования window.open () используйте Chromes chrome.windows.create ... http://code.google.com/chrome/extensions/windows.html#method-create
... затем при обратном вызове вы можете записать его window.id, а затем в любое время, когда захотитечтобы сделать его сфокусированным, вы можете использовать chrome.windows.update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...