2010-03-09 13 views
17

He creado una extensión de cromo y logré abrir el archivo popup.html usando window.open. Sin embargo, quiero abrirlo en una nueva pestaña, lo he intentado un montón de diferentes maneras, incluyendo:Extensión de Chrome: icono de extensión en clic, abra popup.html en la nueva pestaña

<script type="text/javascript" language="JavaScript"> 
    chrome.tabs.create('url': 'popup.html'); 

solo estoy colocando el código en el lugar equivocado o se trata de un código incorrecto en total?

+0

Prueba esta respuesta: http://stackoverflow.com/a/36996729/5309803 ... funciona para mí –

Respuesta

20

¿por qué le gustaría abrir el popup.html en una nueva pestaña? Deberías crear una página diferente para eso. De todos modos, si desea abrir el popup.html, en una pestaña nueva, deberá ingresar la url de la extensión.

http://code.google.com/chrome/extensions/extension.html#method-getURL

chrome.tabs.create({'url': chrome.extension.getURL('popup.html')}, function(tab) { 
    // Tab opened. 
}); 
+4

Este fragmento necesita se llama desde la página de fondo, por lo que si intenta abrir la pestaña desde un script de contenido, envíe un mensaje a la página de fondo que activará este código. Aquí está la página apropiada para enviar mensajes de esta manera: http://code.google.com/chrome/extensions/messaging.html –

+2

Tuve que ajustar el 'url': chrome.extension.getURL ('popup.html') entre paréntesis. {'url': chrome.extension.getURL ('popup.html')} – AdamB

2

Uso chrome.tabs.create (Propiedades del objeto, la función de devolución de llamada) como se describe en http://code.google.com/chrome/extensions/tabs.html

Las propiedades de objeto pueden contener campos para WindowID, índice, url y seleccionado. La función de devolución de llamada opcional recibe un objeto Tab de la pestaña recién creada.

Así que el ejemplo más simple de crear una nueva pestaña en la ventana actual y lograr que se seleccionan se vería así:

chrome.tabs.create({'url': chrome.extension.getURL('popup.html'), 'highlighted': 'true'}); 
No

seguro de por qué le gustaría mostrar la popup.html en una nueva pestaña, pero me resulta muy útil para desarrollar/depurar mi extensión ... es bastante molesto que en la página de extensión haya "normalmente" solo un enlace a la página de fondo.

gustaría saber cómo abrirlo en una nueva ventana y tal vez en un modo de pantalla completa ;-)

+2

Tenga en cuenta que 'selected' ahora está en desuso. Use 'highlight' en su lugar. – Brad

6

Ahora puede utilizar para abrir Event Pages popup.html en una nueva pestaña cuando se hace clic en icono de la extensión sin crear una página default_popup.

manifiestan:

"background": { 
    "scripts": ["background.js"], 
    "persistent": false 
} 

JS:

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.create({'url': chrome.extension.getURL('popup.html'), 'selected': true}); 
}); 
+3

Esto abrirá una nueva pestaña en cada clic. Probablemente sea conveniente comprobar si la extensión emergente ya está abierta y, en caso afirmativo, simplemente seleccionarla –

Cuestiones relacionadas