2012-01-24 28 views
6

Tengo una extensión de Chrome que hace una ventana.open() cuando se hace clic en el icono de las extensiones. (No puede usar la ventana emergente de extensión de Chrome tradicional debido a un error no relacionado en Chrome). Me pregunto si hay una manera de enfocar una ventana emergente si ya está abierta. Chrome desactiva window.focus() pero pensé que podría haber una forma de hacerlo en una extensión de Chrome.Puede enfocar una ventana emergente desde una extensión de Chrome

Actualización: Para todos los interesados ​​este es el código que terminé usando en mi página de fondo:

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; 
    } 
}); 

Respuesta

8

En lugar de utilizar window.open() utilizar el chrome.windows.create cromos .. http://code.google.com/chrome/extensions/windows.html#method-create
... luego en la devolución de llamada puede grabar su window.id y luego, en cualquier momento que desee enfocarlo, puede usar chrome.windows.update.

+0

Saludos, esto era exactamente lo que necesitaba. –

Cuestiones relacionadas