2012-01-19 17 views
11

Acabo de pasar las últimas 7 horas seguidas intentando encontrar una forma de vincular directamente a una página interna de Chrome. Por ahora me he dado por vencido. Acabo de instruir a las personas a "hacer clic con el botón derecho y abrir en una pestaña nueva".Necesito vincular directamente a una página interna de Chrome, desde dentro de una página de una Extensión de Chrome

He intentado todo, desde html a css a javascript, pero nada está funcionando. No ocurre nada cuando hago clic en el enlace, aunque haga clic derecho en el enlace y abrirlo en una nueva pestaña funciona perfecto.

Javascript intentos fallidos:

<div class="links"> 
    <a href="chrome://net-internals/" onclick="window.open('chrome://net-internals/');">TESTAA</a> 
</div> 

y

<div class="links"> 
    <a href="chrome://net-internals/" onclick="window.location('chrome://net-internals/');">TESTAA</a> 
</div> 

No existe una página de error. Simplemente no pasa nada cuando haces clic. Si lo fuerza a abrir en una nueva pestaña usando target="_blank", solo abre una pestaña en blanco.

¡ACTUALIZACIÓN! SOLUCIONADO

----- ----- PASO 1

Coloque el siguiente código en la página background.html (background.html se llama en el manifest.json):

function openNetInternals() { 
    chrome.tabs.create({url: 'chrome://net-internals/'}); 
} 

----- ----- PASO 2

Pon este código para el enlace (en la página hTML):

<a href="chrome://net-internals/" onclick="chrome.extension.getBackgroundPage().openNetInternals()">Net</a> 

PASO ----- ----- 3

Asegúrese de actualizar la extensión. Funcionará ahora.

Respuesta

2

Es este enlace disponible desde su extensión o desde su sitio web? Si desde la extensión a continuación, tratar de usar chrome.tabs módulo:

chrome.tabs.create({url: 'chrome://net-internals/'}); 

En la página de fondo crear la función como ésta:

function openNetInternals() { 
    chrome.tabs.create({url: 'chrome://net-internals/'}); 
} 

y llamarlo desde su página de inicio personalizada cuando el enlace se hace clic como éste :

chrome.extension.getBackgroundPage().openNetInternals(); 

Pertinentes docs here.

+0

Lo sentimos, pero hace mucho tiempo que se otorgaron permisos a las pestañas. no tiene efecto. –

+0

No entiendo. ¿De qué permisos estás hablando? –

+0

nada. ignorar permisos. eso está fuera de tema. Solo te estaba contestando diciéndote que le había dado permisos a las pestañas. –

1

Trate de esta manera:

<a href="#" onclick="chrome.tabs.create({url: 'chrome://net-internals'});">Net</a> 
+2

'Nota: Esta función se puede utilizar sin solicitar el permiso 'pestañas' en el manifiesto. - http://code.google.com/chrome/extensions/tabs.html#method-create –

+0

sí, he comprobado esto y he corregido la respuesta – dfsq

+0

¿por qué no funciona? aquí es lo que utilicé: \t \t \t \t \t TESTBB

0

para abrir chrome: // enlace en una nueva pestaña

chrome.tabs.create({url: 'chrome://net-internals/'}); 

para abrir en la misma pestaña

chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) { 
    var tab_id = tabs[0]['id']; 
    chrome.tabs.update(tab_id, {'url':'chrome://net-internals/'}); 
}); 
Cuestiones relacionadas