Bacheca del forum

Nuova amministrazione: tanti ranghi in più,
lo staff



[Google] Come creare un extension per google chrome


You are not connected. Please login or register

View previous topic View next topic Go down  Message [Page 1 of 1]

[Google] Come creare un extension per google chrome Empty [Google] Come creare un extension per google chrome Thu Sep 01, 2011 1:01 pm

Pubblicato da: Spacca
     Spacca
Spacca
Staff d'Amministrazione
Staff d'Amministrazione


Analisi
Uno script viene eseguito al caricamento di ogni pagina (get_domain.js) e passerà l’informazione del dominio (window.location.hostname) allo script in background.html.

if (window == top) {
// Passiamo l'hostname alla background page
chrome.extension.connect().postMessage(window.location.hostname);
}
In background.html vengono attivati i listener che servono ad “ascoltare” i messaggi passati dai content_script e ricevuto un dominio valido (escludiamo gli indirizzi IP), abilitiamo esplicitamente la pageAction che a questo punto verrà mostrata nella barra degli indirizzi

var pageActionId = "WhoIsPageAction";
var hostnames = {};

chrome.extension.onConnect.addListener(function(port) {
// Funzione chiamata del contentScript get_domain.js, che ci passerà l'hostname della tab corrente
port.onMessage.addListener(function(hostname) {
// Niente whois sugli IP
if (!/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/.exec(hostname)) {
// Estraiamo il dominio di secondo livello dall'hostname
var matches = /[^\.]+\.[^\.]+$/.exec(hostname);
if (matches.length==1) {
hostnames[port.tab.id] = matches[0];
// Se tutto è andato a buon fine, abilitiamo la pageAction
chrome.pageActions.enableForTab(pageActionId, {tabId: port.tab.id, url: port.tab.url, title: "Check WhoIs", iconId: 0});
}
}
});
});
Con un’altro listener creiamo un’azione per la pageAction, dove, dopo aver recuperato la tab in uso, creiamo un url che punta al servizio online di query whois con il nostro dominio tra i parametri. Con questo url, apriamo una nuova tab del browser e il gioco è fatto

chrome.pageActions[pageActionId].addListener(function(pageActionId, pageActionInfo) {
chrome.windows.getCurrent(function(window) {
chrome.tabs.get(pageActionInfo.tabId, function(tab) {
// Assicuriamoci che la finestra sia ancora selezionata
if (window.focused) {
// Creaiamo l'url del servizio di query whois e apriamolo in una nuova tab
var url = "http://artera.it/whois?s=" + encodeURIComponent(hostnames[pageActionInfo.tabId]);
chrome.tabs.create({url: url, windowId: window.windowId});
}
});
});
});
Rimane solo da fare un po’ di pulizia alla chiusura della tab

chrome.tabs.onRemoved.addListener(function(tabId) {
hostnames[tabId] = null;
});
Testare l’estensione
Durante lo sviluppo dell’estensione è possibile provarla e ricaricarla “al volo” senza doverla prima pacchettizare.
Ecco come fare:
Aprire una nuova tab su chrome://extensions , viene visualizzata una lista delle estensioni installate sul browser.
Cliccare su “+ Developer tools” e quindi su “Load unpacked Extension…”, selezionare quindi la cartella dell’estensione, che apparirà immediatamente in lista e potrà essere ricaricata a piacimento.

Fonte: blog artera


http://Puro100x100.co.cc

Advertising poster


Ciao,
Vuoi entrare nel nostro staff? è semplice segui le procedure illustrate

Vai al Seguente link (clicca) e segui i post guida

Mi raccomando! ti aspettiamo...
Lo staff d'animazione


View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum



Unauthorised copying, reproduction, rental, public performance or broadcast of this website and of his content is a violation of applicable laws
– © 2011 Puro100x100 inc. All rights reserved. All trademarks are the property of their respective owners
qui

Free forum | ©phpBB | Free forum support | Report an abuse | Forumotion.com