Scrierea unui exercițiu Chrome exigent în mod cinstit nu este la fel de dificilă cum credeți. În acest tutorial, vă voi ajuta să vă familiarizați cu modul în care am luat un API oferit de un serviciu de căutare de domenii, Domai.nr, și am creat o extensie Chrome pentru ei, pur și simplu folosind API-.
În acest tutorial, vă voi arăta cum am făcut extensia Domai.nr Chrome, utilizând simple HTML, CSS și jQuery. Fluxul de lucru tipic al acestei extensii poate fi împărțit astfel:
Deci, nu este revoluționar sau rupt, dar atunci când căutați domenii destul de frecvent (așa cum sunt sigur că mulți dintre voi sunteți), acesta într-adevăr are un scop. Am vrut să profit de această ocazie pentru a vă arăta nu numai modul în care am făcut această extensie specifică, dar, mai general, cum să faceți o extensie pentru browserul Chrome.
Există câteva tipuri diferite de extensii cromate, dar vom face o extensie de acțiune a browserului care arată un popup atunci când se face clic. Google are o imagine de ansamblu asupra a ceea ce există în fiecare extensie. În esență, ceea ce trebuie să știți este că fiecare extensie este un director de fișiere, asemănător unui site web. Voi discuta mai multe despre fiecare dintre aceste fișiere mai târziu în tutorial, dar directorul fiecărei extensii conține următoarele fișiere și acest lucru este luat direct de la Google:
manifest.json
Fișiere HTML
(cu excepția cazului în care extensia este o temă)Fișierele Javascript
Fișierul manifest oferă în principal informații meta despre extensie. Aici definiți lucruri precum numele, versiunea, pictograma și chiar permisiunile.
API-ul Domai.nr poate fi găsit aici. Folosim API-ul JSON, care are două metode: Căutare și Info. Se numește API-ul JSON pentru că, bine, se întoarce JSON. Ambele metode răspund la o solicitare GET, astfel încât să putem concatena doar ceea ce avem nevoie în URL-ul cererii noastre, iar restul va cădea în loc.
manifest.json
FişierDupă cum vedeți, o extensie Chrome nu este cu mult mai mult decât un site de bază. Structura pe care o vom folosi este următoarea:
domainr.html
- acest lucru este echivalent cu index.html
în majoritatea site-urilor web. Prefer să denumesc fișierul HTML principal ca și extensia în sine - este doar o preferință personală.icon.png
- acest 128px by 128px
pictograma este ceea ce văd utilizatorul în bara de instrumente. Atunci când fac clic pe această pictogramă, aceasta va declanșa extensia noastră.images /
- acest director conține toate imaginile pe care le vom folosi, la fel ca un site tradițional. Am contactat creatorii site-ului Domai.nr și am obținut permisiunea de a folosi toate imaginile pe care le au pe site-ul lor web, diminuat. Deci, am folosit doar Inspectorul Web Chrome și le-am descărcat copii și le-am scalat corespunzător.manifest.json
- manifest.json
fișierul, așa cum am explicat mai sus, este locul în care definim multe proprietăți despre extensia noastră. Este necesar, dar este destul de simplu de creat.script.js
- acest fișier JavaScript este locul în care toate jQuery noastre este deținut. Vom face referire la acesta în domainr.html
fișier și va controla toată logica din extensia noastră.style.css
- în cele din urmă, aici este fișierul nostru de stil. În mod evident, vom menționa și acest lucru în domainr.html
fişier.E timpul să ne grăbim codul și să începem! Al nostru manifest.json
fișierul este destul de simplu. Pentru a vedea un rezumat mai detaliat al tuturor câmpurilor acceptate într-un fișier manifest, verificați acest lucru. Puteți găsi tot codul utilizat în fișierul manifest.json de mai jos:
"nume": "Căutarea Domai.nr", // numele extensiei "versiune": "1.0", // numărul versiunii "descriere": "Dă domenii dvs. un sfârșit fericit". Chrome Webstore "browser_action": "default_icon": "icon.png", // specifică pictograma implicită "popup": "domainr.html" // pagina care va fi afișată când se face clic pe pictograma "permisiuni": ["http://domai.nr", // acordăm permisiunea de extensie pentru a accesa datele de pe aceste site-uri. "http://domai.nr/*" // o sugem cu un *, deci / api este accesibil)
După cum puteți spune prin comentarii, este destul de simplă. Secțiunea de permisiuni este extrem de importantă în cazul nostru. În caz contrar, vom obține o eroare XHR, deoarece extensia nu poate accesa domenii cărora nu îi acordați permisiunea. Prin urmare, importanța secțiunii "permisiuni".
Pentru extensia noastră, vor exista în principal trei părți:
element, cu un
, care este locul în care utilizatorul scrie în interogarea pe care o caută. Acesta este pasul pe care îl va concentra acest tutorial.
cu mai mulți
elementele din interiorul acestuia, care sunt populate pe baza cererii lor din partea 1.Deci, cred că este corect să spunem că extensia câștigă complexitate pe măsură ce utilizatorul avansează prin acele părți sau etapele descrise mai sus. Odată ce am spus asta, hai să săpăm în codul HTML pe care l-am structurat.
Domai.nr Extensia Chrome Bine - asta e, în ceea ce privește obținerea de intrare de la utilizator este în cauză (bine, pe partea de HTML, cel puțin). Pentru a fi un pic mai descriptiv, acel cod este ceea ce utilizatorul va vedea atunci când fac clic pe pictograma pentru a declanșa extensia. Este doar o cutie de intrare pe care o vom face să arate ca site-ul domai.nr-l are. Veți observa că am doar un a
Și acum e timpul să încercăm. Nu-ți pune speranțele, pentru că va arăta destul de urât?
Presupunând că totul este bine, ar trebui să vedeți acum o listă a tuturor domeniilor legate de o interogare pe care utilizatorul o introduce (cum ar fi mai sus). Deși este într-adevăr destul de urât, extensia noastră este acum conectată corect în metoda de căutare Domai.nr API și retrerează corect rezultatele. felicitări!
Înainte de a trece la secțiunea finală a tutorialului, totuși, avem ceva de curățat. Trebuie să afișăm pictograma care arată dacă domeniul este disponibil, poate disponibil sau luat, și curăță aspectul listei. Unele CSS simple vor avea grijă de asta fără nici o problemă.
ul display: bloc; clar: ambele; margin: 0; padding: 0; ul li font-size: 15px; culoare: # 333333; afișare: bloc; lățime: 100%; line-height: 24px; margin-left: 10px; lățime: 100%; poziția: relativă; ul li .bg width: 15px; înălțime: 15px; afișare: bloc; float: stânga; ul .available .bg background: url ("images / available.png") 0 7px no-repeat; lățime: 15px; înălțime: 19px; afișare: bloc; plutește la stânga; margine-stânga: 10px; ul. nimic .bg width: 15px; înălțime: 19px; afișare: bloc; plutește la stânga; margin-left: 10px; ul .maybe .bg background: url ("images / maybe.png") 0 7px nu-repeta; lățime: 15px; înălțime: 19px; afișare: bloc; plutește la stânga; margin-left: 10px; ul li a culoare: # 2870B0; text-decoration: nici unul; lățime: 100%; display: bloc; .loader-sub poziție: absolută; dreapta: 38px; top: 4px; ul li a: hover (fundal: url ("images / grey.png") nu-repeta stânga sus; cursor: indicatorul; # results-info a: hover background: none; text-decorare: subliniere; cursor: pointer; # results-info h3 margin-top: 11px; text-align: centru; afișare: bloc; lățime: 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 fundal: url ("images / blue.png") no-repeat left top; culoare: #FFFFFF;
Mare - acum se uită la toate frumos și curat - la fel ca site-ul real Domai.nr! În cele din urmă, este timpul să ajungeți la lucrurile bune.
Această ultimă secțiune schimbă cel mai mult extensia UI a extensiei, dar dacă o împărțim în pași, nu este chiar deloc rău.
Bine, să ne gândim la asta. În primul rând, atunci când utilizatorul face clic pe un doamain, vrem ca fereastra pop-up să devină mai largă și să afișeze informații referitoare la acel domeniu specific. Nici o problema. Cu toate acestea, va trebui să adăugăm o structură mult mai mult codului nostru pentru a obține o corecție justă.
Înregistrați-vă la:
TLD:
- Wikipedia
- IANA
Instrumente:
- Vizitați site-ul (www)
- CARE ESTE
Realizat de Domai.nr.
Deci, comentariile ar trebui să fie suficient de explicative pentru structura HTML, cu toate acestea, nu vom observa cu adevărat prea multe până nu vom oferi o extensie mai mare interactivității. Acum, că avem structura în jos, să mergem mai departe și să facem asta prin adăugarea unor jQuery.
$ ("# results-list a") .de live ('click', function () // 'live' este necesar, deoarece elementele populeaza DOM dupa ce utilizatorul cauta ceva, nu onLoad. (c) ("vizibilitate", "vizibilă"); // ascundeți încărcătorul secundar $ (".extension a"). (link-ul de lângă "TLD") $ (".registrars ul li") remove (); // ascunde
Acest cod de mai sus este încărcat în toate informațiile de care avem nevoie pentru URL-ul Wikipedia, URL-ul IANA, informații Whois, link-ul site-ului și informații despre extensie. Mai jos, vom examina modul în care am încărcat informațiile registratorului, printre altele!
// codul de mai sus? dacă (json.registrars.length < 1) // if there are no registrars available $(".registrars ul").append('
Fantastic! Informațiile se încarcă acum, dar se uită destul de greu. Nu vă faceți griji, adăugați următoarea CSS pentru a face să pară destul de frumoasă și a pune capăt exercițiului de astăzi.
#left float: left; lățime: 250px; padding-bottom: 10px; # results-info float: right; lățime: 510px; afișare: nici una; .register-stuff overflow: hidden; .right float: right; .extension float: right; font-size: 13px; margin-right: 70px; #load-more culoare: # 6C9DC9; font-size: 12px; line-height: 18px; abbr float: stânga; # results-info h4 margin-bottom: 9px; font-size: 16px; font-weight: bold; vertical-aliniere: partea de sus; margin-top: 0; # results-info .sections> li poziție: relativă; plutește la stânga; lățime: 140px; frontieră stângă: 1px solid # A9ADA8; padding-left: 9px; margin-right: 10px; # results-info .sections li ul li margine-stânga: 0; line-height: 20px; # results-info.sections li ul li font-size: 13px; afișare: inline; #footer overflow: hidden; font-size: 11px; culoare: # 666; înălțime: 20px; clar: ambele; marginea-dreapta: 15px; #footer p marja: 0; padding: 0; text-align: right; #footer p a culoare: # 666; #footer p a: hover culoare: # 333333;
Și acolo aveți! Felicitări, tocmai ați făcut o extindere clară pentru Chrome utilizând API-ul unui serviciu excelent! Am construit asta în timp ce mă aflam într-un aeroport așteptând o trecere; care ajută să demonstreze cât de simplu și rapid de a face una dintre acestea poate fi. Sincer, o extensie Chrome nu este mai dificilă decât o pagină web obișnuită. Dacă aveți orice întrebări, vă rugăm să lăsați-le în comentariile de mai jos!