2010-07-06 20 views

Respuesta

74

Esto no es cierto para las aplicaciones más recientes de Chrome. se abrirán 2 requiere las pestañas como::

aplicaciones de cromo más nuevos que tienen manifest_version


chrome.browserAction.onClicked.addListener(function(activeTab) 
{ 
    var newURL = "http://www.youtube.com/watch?v=oHg5SJYRHA0"; 
    chrome.tabs.create({ url: newURL }); 
}); 

+0

Esta es la respuesta mejor, más actual y más precisa, FYI –

+5

qué archivo necesito para colocar este código ... es el principal. js o popup.html ??? –

+2

@DehanWjiesekara Ponlo en, por ejemplo, background.js y tiene '" background ": {" scripts ": [" background.js "]}' en tu manifiesto. – simonp

49

Bueno, en el extensions docs, indica en manifest, tendría que incluir "pestañas" como su permiso. Misma forma en que explica la aplicación Hola:

archivo de manifiesto:

{ 
    "name": "My Extension", 
    "version": "1.0", 
    "description": "Opens up a local webpage", 
    "icons": { "128": "icon_128.png" }, 
    "background_page": "bg.html", 
    "browser_action": { 
    "default_title": "", 
    "default_icon": "icon_19.png" 
    }, 
    "permissions": [ 
    "tabs" 
    ], 
} 

Dentro del background page, se escucha al evento clic del ratón sobre la acción del navegador.

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.create({'url': chrome.extension.getURL('f.html')}, function(tab) { 
    // Tab opened. 
    }); 
}); 

Como habrás notado anteriormente, verás que utilicé la pregunta que viste en la otra publicación. Tenga en cuenta que esto no está probado, pero creo que debería funcionar.

+1

Tenga en cuenta que la adición de permisos de "pestañas" mostrará una advertencia de permiso "Leer el historial de navegación" al usuario durante la instalación. Los documentos dicen que la mayoría de 'chrome.tabs' no requieren este permiso https://developer.chrome.com/extensions/tabs Como no presté mucha atención a esto, recientemente perdí cientos de usuarios de https://chrome.google.com/webstore/detail/inbox-by-gmail-checker/mpjmeeikbbgccbjkbfabocnjcaejdpmj – Joe

4

chrome.tabs.create necesitan el permiso de "fichas".

Simplemente usando window.open en extensión sin necesidad de ningún permiso. y el código es más corto. Sugiero esta solución.

window.open(url,'_blank'); 
+0

utilicé el mismo código en mi extensión para abrir una nueva pestaña al hacer clic en el botón de notificación. pero ahora, después de 3 meses, recibo un error de página aw..snap al hacer clic en ese botón. ¿tienes alguna idea de por qué sucedió esto? P.s: funciona bien si utilizo otra url como: www.google.com pero no funciona con mi sitio. – Sona

+0

Esto parece funcionar para mí (aunque solo lo he probado en una extensión desagregada local en la que estoy trabajando). – simonp

Cuestiones relacionadas