Att skriva en smidig Chrome Extension är ärligt inte så svår som du kanske tror. I den här handledningen kommer jag att gå igenom hur jag tog ett API som erbjuds av en stor domännamnssökningstjänst, Domai.nr, och skapade en Chrome-förlängning för dem, helt enkelt genom att använda deras API.
I denna handledning går jag igenom hur jag skapade Domai.nr Chrome Extension, med enkel HTML, CSS och jQuery. Det typiska arbetsflödet för denna förlängning kan brytas ner som så:
Så det är inte revolutionerande eller banbrytande, men när du letar efter domäner ganska ofta (som jag är säker på att många av er), tjänar det faktiskt ett syfte. Jag ville ta tillfället i akt att inte bara visa dig hur jag gjorde den här specifika utvidgningen, utan också mer generellt hur man gör en förlängning för Chrome webbläsaren.
Det finns några olika typer av kromförlängningar, men vi gör en uppdatering för webbläsare som visar en popup när den klickas. Google har en bra översikt över vad som finns i varje förlängning. I huvudsak är vad du behöver veta att varje tillägg är en katalog med filer, ungefär som en webbplats. Jag kommer att diskutera mer om var och en av dessa filer senare i handledningen, men varje tilläggs katalog innehåller följande filer, och det här tas direkt från Google:
manifest.json-filen
HTML-filer
(om inte förlängningen är ett tema)Javascript-filer
Manifestfilen ger mestadels meta-information om förlängningen. Här definierar du saker som namn, version, ikon och till och med behörigheter.
Domai.nrs API finns här. Vi använder JSON API, som har två metoder: Sök och Info. Det kallas JSON API eftersom det returnerar JSON. Båda metoderna svarar på en GET-förfrågan, så vi kan bara sammanfoga vad vi behöver i vår begäran URL, och resten kommer att falla på plats.
manifest.json
FilSom du kan se är en Chrome-förlängning verkligen inte mycket mer än en grundläggande webbplats. Den struktur vi ska använda är som följer:
domainr.html
- detta motsvarar index.html
sida på de flesta webbplatser. Jag föredrar att namnge den huvudsakliga HTML-filen på samma sätt som förlängningen själv - det är bara en personlig preferens.icon.png
- detta 128px med 128px
ikonen är vad användaren ser på verktygsfältet. När de klickar på den här ikonen kommer den att bränna vår förlängning.bilder/
- den här katalogen innehåller alla bilder vi ska använda, precis som en traditionell webbplats. Jag kontaktade skaparna av Domai.nr och fick tillstånd att använda alla bilderna på deras hemsida, bara nedskalade. Så jag använde bara Chrome's Web Inspector och hämtade kopior av dem, och skalade dem i enlighet med det.manifest.json
- de manifest.json
fil, som förklaras ovan, är där vi definierar många egenskaper om vår förlängning. Det krävs, men det är ganska enkelt att skapa.script.js
- Denna JavaScript-fil är där alla våra jQuery hålls. Vi kommer att referera det i domainr.html
fil, och det kommer att styra all logiken i vår förlängning.style.css
- äntligen, här är vår stylesheet-fil. Vi kommer självklart också att hänvisa till detta i domainr.html
fil.Det är dags att gräva in i vår kod och komma igång! Vår manifest.json
filen är ganska enkel. För att se en mer detaljerad sammanfattning av alla de fält som stöds i en manifestfil, kolla här. Du kan hitta all kod som används i vår manifest.json-fil nedan:
"namn": "Domai.nr Search", // namnet på förlängningen "version": "1.0", // versionsnummer "description": "Ge dina domäner en lycklig avslutning.", // beskrivning som används i Chrome Webstore "browser_action": "default_icon": "icon.png", // anger standardikonet "popup": "domainr.html" // den sida som ska visas när ikonen klickas, "behörigheter": ["http://domai.nr", // vi ger förlängningsbehörigheten att komma åt data på dessa webbplatser. "http://domai.nr/*" // vi suffix den med en *, så / api är tillgänglig]
Som du kan berätta av kommentarerna är det ganska enkelt. Tillståndssektionen är oerhört viktigt i vårt fall. Annars kommer vi att få ett XHR-fel eftersom utökningen inte kan komma åt domäner som du inte tillåter det till. Därför betydelsen av "behörigheter" sektionen.
För vår förlängning kommer det i princip att vara tre delar:
element med en
, vilket är var användaren skriver i den fråga de letar efter. Detta är vad detta steg i handledningen kommer att fokusera på.
med flera
element inuti det, som blir befolket baserat på deras förfrågan i del 1.Så, jag tycker det är rättvist att säga att förlängningen blir komplex när användaren fortskrider genom de delar eller steg som beskrivs ovan. Med det sagt, låt oss gräva i HTML som jag brukade strukturera detta.
Domai.nr Chrome Extension Okej - det är så, så långt som att få inmatningen från användaren är orolig (ja, på HTML-sidan, åtminstone). För att vara lite mer beskrivande är den koden som användaren kommer att se när de klickar på ikonen för att utlösa tillägget. Det är bara en inmatningslåda som vi kommer att stila för att se ut som domai.nrs webbplats har den. Du märker att jag bara har en
Och nu är det dags att testa. Får inte dina hopp om det, för det kommer att se ganska fult ut?
Om vi antar allt bra borde du nu se en lista över alla domäner som är relaterade till en fråga som användaren skriver in (som ovan). Medan det verkligen är ganska fuligt, har vi vår förlängning nu korrekt inkopplad i Domai.nr APIs sökmetod och återställer resultaten korrekt. Grattis!
Innan vi går vidare till den sista delen av handledningen, har vi dock lite att göra. Vi måste visa ikonen som visar om domänen är tillgänglig, kanske tillgänglig eller tagen, och bara städa upp utseendet på listan. Vissa enkla CSS kommer att ta hand om det utan problem.
ul display: block; tydligt: båda; marginal: 0; vaddering: 0; ul li font-size: 15px; color: # 333333; display: block; bredd: 100%; line-height: 24 bildpunkter; margin-left: 10px; bredd: 100%; position: relativ; ul li .bg bredd: 15px; höjd: 15px; display: block; float: left; ul. available .bg background: url ("images / available.png") 0 7px no-repeat; bredd: 15px; höjd: 19px; display: block; flyta till vänster; margin-left: 10px; ul. nothing .bg width: 15px; höjd: 19px; display: block; flyta till vänster; margin-left: 10px; ul .maybe .bg background: url ("images / maybe.png") 0 7px no-repeat; bredd: 15px; höjd: 19px; display: block; flyta till vänster; marginal-vänster: 10px; ul li a färg: # 2870B0; text-dekoration: ingen; bredd: 100%; display: block; .loader-sub position: absolute; höger: 38px; top: 4px; ul li a: sväva bakgrund: url ("images / gray.png") no-repeat left top; markör: pekare; # resultat-info a: svep bakgrund: ingen; text-dekoration: understryka; markör: pekare; # resultat-info h3 margin-top: 11px; text-align: center; display: block; bredd: 340px; # resultat-info. tillgänglig färg: # 23B000! viktigt; textskugga: rgba (100%, 100%, 100%, 1,0) 0 1px 2px; fontstorlek: 24px; ul li a.active background: url ("images / blue.png") ingen upprepa vänster topp; färg: #ffffff;
Bra - nu ser det ut snyggt och rent - precis som den verkliga Domai.nr-webbplatsen! Slutligen är det dags att komma till de goda grejerna.
Det här avsnittet ändrar utvidgarens användargränssnitt, men om vi bryter ner det i steg, är det verkligen inte så illa alls.
Okej - låt oss tänka igenom det här. För det första, när användaren klickar på en dokamin, vill vi att popupen ska bli bredare och visa information om den specifika domänen. Inga problem alls. Vi måste dock lägga till lite mer struktur i vår kod för att få det rätt.
Registrera på:
TLD:
- Wikipedia
- IANA
Verktyg:
- Besök webbplatsen (www)
- VEM ÄR
Drivs av Domai.nr.
Så, kommentarerna bör vara förklarande nog för den HTML-strukturen, men vi märker inte riktigt mycket förrän vi ger vår förlängning lite mer interaktivitet. Nu när vi har strukturen nere, låt oss gå vidare och göra det genom att lägga till några jQuery.
$ ("# results-list a"). live ('klick', funktion () // 'live' krävs, eftersom elementen fyller i DOM efter att användaren söker efter något, inte onLoad. $ (detta). css ("synlighet", "synlig"); // göm sekundärlastaren $ (".förlängning a"). första () .fjern (); // ta bort föregående tillägg (länk bredvid "TLD"). $ (".registratorer ul li"). ta bort (); // dölja föregångaren
Den koden ovan laddad i all information vi behöver för Wikipedia-URL, IANA-URL, Whois-information, webbplatslänk och förlängningsinformation. Nedan undersöker vi bland annat hur jag laddat registrarinformationen!
// koden ovan? om (json.registrars.length < 1) // if there are no registrars available $(".registrars ul").append('
Fantastisk! Informationen laddas nu, men det ser ganska utsmyckat. Inga bekymmer, lägg bara till följande CSS för att få det att se allt vackert och få ett slut på dagens träning.
#left float: left; bredd: 250px; padding-bottom: 10px; # resultat-info float: right; bredd: 510px; display: none; .register-stuff overflow: hidden; .right float: right;. extension float: right; font-size: 13px; marginal-höger: 70px; # load-more color: # 6C9DC9; font-size: 12px; linjehöjd: 18px; abbr float: left; # resultat-info h4 margin-bottom: 9px; typsnittstorlek: 16px; font-weight: bold; vertikaljustering: topp; margin-top: 0; # results-info .sections> li position: relative; flyta till vänster; bredd: 140px; gränsen till vänster: 1px fast # A9ADA8; padding-left: 9px; marginal-höger: 10px; # resultat-info .sections li ul li margin-left: 0; linjehöjd: 20px; # resultat-info .sections li ul li a font-size: 13px; display: inline; #footer overflow: hidden; typsnittstorlek: 11px; färg: # 666; höjd: 20px; tydligt: båda; marginal-höger: 15px; #footer p marginal: 0; padding: 0; text-align: right; #footer p a color: # 666; #footer p a: svävar färg: # 333333;
Och där har du det! Grattis, du har bara gjort en snygg Chrome-förlängning med hjälp av en bra tjänst API! Jag byggde ut det här medan jag var i en flygplats och väntade på en layover; som hjälper till att bevisa hur enkelt och snabbt det är att en av dessa kan vara. Ärligt talat är en Chrome-förlängning inte svårare än en vanlig webbsida. Om du har några frågor, vänligen lämna dem i kommentarerna nedan!