Scrivere una nifty Chrome Extension onestamente non è così difficile come potresti pensare. In questo tutorial, ti illustrerò come ho utilizzato un'API offerta da un ottimo servizio di ricerca dei nomi di dominio, Domai.nr, e ho creato un'estensione per Chrome, semplicemente utilizzando la loro API.
In questo tutorial, ti illustrerò come ho creato l'estensione Chrome di Domai.nr, utilizzando semplici HTML, CSS e jQuery. Il tipico flusso di lavoro di questa estensione può essere suddiviso in questo modo:
Quindi, non è rivoluzionario o rivoluzionario, ma quando cerchi domini abbastanza frequenti (come sono sicuro che molti di voi lo sono), in realtà serve a uno scopo. Volevo cogliere l'occasione per mostrarti non solo come ho realizzato questa estensione specifica, ma anche, più in generale, come creare un'estensione per il browser web di Chrome.
Ci sono alcuni diversi tipi di estensioni di Chrome, ma faremo un'estensione di azione del browser che mostra un popup quando si fa clic. Google ha una grande panoramica di ciò che è in ogni estensione. In sostanza, ciò che devi sapere è che ogni estensione è una directory di file, proprio come un sito web. Discuterò di più su ciascuno di questi file più avanti nel tutorial, ma la directory di ogni estensione contiene i seguenti file, e questo è preso direttamente da Google:
manifest.json file
File HTML
(a meno che l'estensione non sia un tema)File Javascript
Il file manifest fornisce principalmente meta informazioni sull'estensione. Qui è dove si definiscono cose come il nome, la versione, l'icona e persino le autorizzazioni.
L'API di Domai.nr può essere trovata qui. Stiamo utilizzando l'API JSON, che ha due metodi: ricerca e informazioni. Si chiama API JSON perché, beh, restituisce JSON. Entrambi i metodi rispondono a una richiesta GET, quindi possiamo semplicemente concatenare tutto ciò di cui abbiamo bisogno nella nostra richiesta URL, e il resto andrà a posto.
manifest.json
FileCome puoi vedere, un'estensione di Chrome non è molto più di un semplice sito web. La struttura che utilizzeremo è la seguente:
domainr.html
- questo è equivalente al index.html
pagina nella maggior parte dei siti web. Preferisco nominare il file HTML principale come l'estensione stessa, è solo una preferenza personale.icon.png
- Questo 128 px per 128 px
icona è ciò che l'utente vede nella barra degli strumenti. Quando fanno clic su questa icona, verrà attivata la nostra estensione.immagini/
- questa directory contiene tutte le immagini che useremo, proprio come un sito web tradizionale. Ho contattato i creatori di Domai.nr e ho ottenuto il permesso di utilizzare tutte le immagini che hanno sul loro sito web, ridimensionato. Quindi, ho appena usato Chrome's Web Inspector e ne ho scaricato copie e li ho ridimensionati di conseguenza.manifest.json
- il manifest.json
file, come spiegato sopra, è dove definiamo molte proprietà sulla nostra estensione. È richiesto, ma è piuttosto semplice da creare.script.js
- questo file JavaScript è il luogo in cui è conservato tutto il jQuery. Lo faremo riferimento nel domainr.html
file, e controllerà tutta la logica nella nostra estensione.style.css
- finalmente, ecco il nostro foglio di stile. Ovviamente faremo riferimento anche a questo nel domainr.html
file.È ora di approfondire il nostro codice e iniziare! Nostro manifest.json
il file è abbastanza semplice. Per vedere un riepilogo più dettagliato di tutti i campi supportati in un file manifest, controlla questo. Puoi trovare tutto il codice utilizzato nel nostro file manifest.json di seguito:
"nome": "Domai.nr Cerca", // il nome dell'estensione "versione": "1.0", // numero di versione "descrizione": "Dai ai tuoi domini un lieto fine.", // descrizione utilizzata in il Chrome Webstore "browser_action": "default_icon": "icon.png", // specifica l'icona predefinita "popup": "domainr.html" // la pagina da mostrare quando viene cliccata l'icona, "permessi": ["http://domai.nr", // diamo il permesso di estensione per accedere ai dati su questi siti. "http://domai.nr/*" // lo suffisso con un *, quindi / api è accessibile]
Come puoi dire dai commenti, è abbastanza semplice. La sezione delle autorizzazioni è estremamente importante nel nostro caso. In caso contrario riceviamo un errore XHR perché l'estensione non può accedere ai domini a cui non gli si concede l'autorizzazione. Quindi, l'importanza della sezione "permessi".
Per la nostra estensione, ci saranno fondamentalmente tre parti:
elemento, con un
, che è dove l'utente digita nella query che sta cercando. Questo è ciò su cui si concentrerà questo passaggio del tutorial.
con diversi
elementi al suo interno, che vengono popolati in base alla loro richiesta nella parte 1.Quindi, penso che sia giusto dire che l'estensione guadagna complessità mentre l'utente progredisce attraverso quelle parti, o fasi descritte sopra. Detto questo, scaviamo nel codice HTML che ho usato per strutturare questo.
Domai.nr Chrome Extension Bene - questo è tutto, per quanto riguarda l'input da parte dell'utente (beh, sul lato HTML, almeno). Per essere un po 'più descrittivo, quel codice è ciò che l'utente vedrà quando fa clic sull'icona per attivare l'estensione. È solo una casella di input che avremo lo stile per assomigliare al sito di domai.nr. Noterai che ho solo un
E ora è il momento di testare. Non sperare però, perché diventerà piuttosto brutto?
Supponendo che tutto vada bene, ora dovresti vedere un elenco di tutti i domini relativi a una query che l'utente digita (come sopra). Sebbene sia davvero piuttosto brutto, ora la nostra estensione è correttamente collegata al metodo di ricerca dell'API Domai.nr e sta recuperando correttamente i risultati. congratulazioni!
Prima di passare alla sezione finale del tutorial, però, abbiamo un po 'di pulizia da fare. Abbiamo bisogno di visualizzare l'icona che mostra se il dominio è disponibile, forse disponibile o preso, e anche solo pulire l'aspetto della lista. Alcuni semplici CSS si prenderanno cura di questo senza alcun problema.
ul display: block; clear: both; margin: 0; padding: 0; ul li dimensione font: 15px; color: # 333333; blocco di visualizzazione; width: 100%; line-height: 24px; margin-left: 10px; width: 100%; posizione: relativa; ul li .bg larghezza: 15px; altezza: 15px; blocco di visualizzazione; float: left; ul .available .bg background: url ("images / available.png") 0 7px no-repeat; larghezza: 15px; altezza: 19px; blocco di visualizzazione; float: sinistra; margin-left: 10px; ul .nothing .bg width: 15px; altezza: 19px; blocco di visualizzazione; float: sinistra; margin-left: 10px; ul .maybe .bg background: url ("images / maybe.png") 0 7px no-repeat; larghezza: 15px; altezza: 19px; blocco di visualizzazione; fluttuare: a sinistra; margin-left: 10px; ul li a color: # 2870B0; decorazione del testo: nessuna; width: 100%; display: block; .loader-sub position: absolute; a destra: 38 px; top: 4px; ul li a: hover background: url ("images / grey.png") no-repeat left top; cursor: pointer; # results-info a: hover background: none; decorazione del testo: sottolineatura; cursor: pointer; # results-info h3 margin-top: 11px; allineamento del testo: centro; blocco di visualizzazione; width: 340px; # results-info .available color: # 23B000! important; text-shadow: rgba (100%, 100%, 100%, 1.0) 0 1px 2px; font-size: 24px; ul li a.active background: url ("images / blue.png") no-repeat left top; color: #FFFFFF;
Ottimo - ora sembra tutto bello e pulito - proprio come il vero sito Domai.nr! Finalmente, è tempo di arrivare alle cose buone.
Quest'ultima sezione cambia di molto l'interfaccia utente dell'estensione, ma se la suddividiamo in passaggi, non è affatto male.
Okay - pensiamo a questo. Innanzitutto, quando l'utente fa clic su un doamain, vogliamo che il popup si ingrandisca e visualizzi le informazioni relative a quel dominio specifico. Nessun problema. Tuttavia, avremo bisogno di aggiungere un po 'più di struttura al nostro codice per farlo nel modo giusto.
Registrati a:
TLD:
- Wikipedia
- IANA
Utensili:
- Visita il sito (www)
- CHI È
Realizzato da Domai.nr.
Quindi, i commenti dovrebbero essere abbastanza esplicativi per quella struttura HTML, tuttavia, non noteremo molto molto finché non diamo alla nostra estensione un po 'più di interattività. Ora che abbiamo ridotto la struttura, procediamo aggiungendo un po 'di jQuery.
$ ("# results-list a"). live ('click', function () // 'live' è richiesto, perché gli elementi popolano il DOM dopo che l'utente cerca qualcosa, non onLoad. $ (this). fratelli ('. loader-sub'). css ('visibility', 'visible'); // nasconde il loader secondario $ (". extension a"). first (). remove (); // rimuove l'estensione precedente (link accanto a 'TLD'). $ (". registrars ul li"). remove (); // nasconde il precedente egistrar
Questo codice è stato caricato in tutte le informazioni necessarie per l'URL di Wikipedia, l'URL IANA, le informazioni Whois, il link al sito e le informazioni sull'estensione. Di seguito, esamineremo come ho caricato le informazioni del registrar, tra le altre cose!
// il codice sopra? se (json.registrars.length < 1) // if there are no registrars available $(".registrars ul").append('
Fantastico! L'informazione ora sta caricando, ma sembra piuttosto incasinata. Nessun problema, basta aggiungere il seguente CSS per renderlo tutto più bello e porre fine all'esercizio di oggi.
#left float: left; larghezza: 250px; padding-bottom: 10px; # results-info float: right; larghezza: 510px; display: none; .register-stuff overflow: hidden; .right float: right; .extension float: right; font-size: 13px; margin-right: 70px; # load-more color: # 6C9DC9; font-size: 12px; line-height: 18px; abbr float: left; # results-info h4 margin-bottom: 9px; font-size: 16px; font-weight: bold; vertical-align: top; margin-top: 0; # results-info .sections> li position: relative; fluttuare: a sinistra; larghezza: 140 px; border-left: 1px solid # A9ADA8; padding-left: 9px; margin-right: 10px; # results-info .sections li ul li margin-left: 0; line-height: 20px; # results-info .sections li ul li a dimensione font: 13px; display: inline; #footer overflow: hidden; font-size: 11px; colore: # 666; altezza: 20px; clear: both; margin-right: 15px; #footer p margin: 0; padding: 0; text-align: right; #footer p a color: # 666; #footer p a: hover color: # 333333;
E il gioco è fatto! Congratulazioni, hai appena realizzato un'estensione di Chrome elegante utilizzando l'API di un ottimo servizio! L'ho costruito mentre ero in un aeroporto in attesa di una sosta; questo aiuta a dimostrare quanto semplice e veloce possa fare uno di questi. Onestamente, un'estensione di Chrome non è più difficile di una normale pagina web. Se avete domande, per favore lasciatele nei commenti qui sotto!