2012-03-30 18 views
10

Vorrei creare una semplice estensione chrome che, quando si fa clic, apre un URL in una nuova scheda del browser. Questo è quello che ho per manifest.jasonCreazione di un'estensione per Chrome per aprire un collegamento in una nuova scheda

{ 
    "name": "Sprout Social", 
    "description": "Shortcut to Sprout Social", 
    "permissions": [ 
     "tabs" 
    ], 
    "icons": { 
     "128": "128.png" 
    }, 
    "launch": { 
     "web_url": "http://www.sproutsocial.com" 
    } 
} 

Qualsiasi aiuto sarebbe grande.

+0

Di quale collegamento stai parlando? Un link su una pagina? Un pulsante di scelta del browser? – abraham

risposta

2

penso che il metodo che si desidera definire nello schema è

chrome.tabs.create 

chrome.browserAction.onClicked.addListener(function() { 

     chrome.tabs.create({'url': chrome.extension.getURL('popup.html')}, function(tab) { 

     }); 

}); 
15

Ok, prima di tutto, manifest.json (non jason) ha una struttura rigida, non si può pasticciare con essa.

https://developer.chrome.com/extensions/manifest.html

è necessario creare un'estensione di azione del browser, questo significa che l'estensione avrà un pulsante vicino al pulsante dello strumento.

https://developer.chrome.com/extensions/browserAction.html

Non è necessario alcun popup.html, è possibile saltare questa parte. Hai bisogno di scrivere la vostra pagina di sfondo, molte persone lo chiama background.html Questo file HTML avrà il codice, in questa forma:

<html><head><script> your script here (use as many lines as you want) </script></head>/html> 

Questo HTML non potrà mai vedere.

E il codice può essere tutto quello che vuoi, come il codice in altra risposta:

chrome.browserAction.onClicked.addListener(function() { 
    chrome.tabs.create({'url': "http://www.sproutsocial.com"}); 
}); 

E questo è tutto.

+0

+1 e grazie ... Come caricare la pagina nella scheda corrente ??? – RajeshKdev

+3

RJK, prova chrome.tabs.update ({url: 'http: //your.url.com'}); –

+2

YoArgentino è al lavoro. Grazie ancora. :) – RajeshKdev

5

Soluzione più semplice, non è necessario l'HTML.

Aggiungi questo al manifest.json

"browser_action": { 
    "default_icon": "images/icon38.png", 
    "default_title": "Your title" 
}, 
"background": { 
    "scripts": ["background.js"], 
    "persistent": false 
} 

Creare i background.js di file, con questo codice:

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.create({ url: "http://www.yoursite.com" }); 
}); 

Nota: non aggiungo "permissions": ["tabs"] in manifest.json poiché aggiunge l'avviso di autorizzazione: "Leggi la cronologia di navigazione" e ciò può essere fonte di confusione per l'utente. L'estensione funziona ancora.

Problemi correlati