2012-01-19 12 views
11

Ho appena trascorso le ultime 7 ore consecutive cercando di trovare un modo per collegarsi direttamente a una pagina interna di Chrome. Per ora mi sono arreso. Ho semplicemente chiesto alle persone di "fare clic con il tasto destro e aprire in una nuova scheda".È necessario collegarsi direttamente a una pagina interna di Chrome, all'interno di una pagina di un'estensione di Chrome

Ho provato di tutto, da html a css a javascript, ma non funziona nulla. Non succede nulla quando faccio clic sul collegamento, anche se il clic con il pulsante destro del mouse e l'apertura in una nuova scheda sono perfetti.

Javascript tentativi falliti:

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

e

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

Non c'è pagina di errore. Semplicemente non succede niente quando clicchi. Se lo si forza per aprire in una nuova scheda utilizzando target="_blank", si apre solo una scheda vuota.

AGGIORNAMENTO! Risolto!

----- ----- FASE 1

Inserire il seguente codice nella pagina background.html (background.html viene chiamato nel manifest.json):

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

----- ----- FASE 2

Mettere questo codice per il collegamento (nella pagina html):

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

STEP ----- ----- 3

Assicurati di aggiornare l'estensione. Funzionerà ora.

risposta

2

È questo link disponibili dal proprio interno o dal tuo sito web? Se da estensione poi provare a utilizzare chrome.tabs modulo:

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

Nella pagina di sfondo creare funzione come questo:

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

e chiamare dalla tua pagina iniziale personalizzata quando link viene cliccato come questo :

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

documenti rilevanti here.

+0

Siamo spiacenti, ma le autorizzazioni sono state concesse alle schede molto tempo fa. non ha alcun effetto. –

+0

Non capisco. Di quali autorizzazioni stai parlando? –

+0

niente. ignorare le autorizzazioni. è fuori tema. Stavo solo rispondendo dicendoti che avevo dato le autorizzazioni alle schede. –

1

provare in questo modo:

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

'Nota: Questa funzione può essere utilizzata senza chiedere il permesso 'schede' nel manifest. - http://code.google.com/chrome/extensions/tabs.html#method-create –

+0

sì, ho controllato questo e ho corretto la risposta – dfsq

+0

perché non funziona? ecco cosa ho usato: \t \t \t \t \t TESTBB

0

per aprire chrome: // collegamento in una nuova scheda

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

per aprire nella stessa scheda

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