Eine clevere Chrome Extension zu schreiben, ist ehrlich gesagt nicht so schwierig, wie Sie vielleicht denken. In diesem Tutorial gehe ich Ihnen durch, wie ich eine API, die von einem großen Suchdienst für Domänennamen (Domai.nr) angeboten wird, nutzte und eine Chrome-Erweiterung für sie erstellte, die einfach deren API verwendet.
In diesem Tutorial gehe ich Ihnen vor, wie ich die Chrome-Erweiterung Domai.nr mit einfachem HTML, CSS und jQuery erstellt habe. Der typische Workflow dieser Erweiterung lässt sich wie folgt aufteilen:
Es ist also nicht revolutionär oder bahnbrechend, aber wenn Sie häufig nach Domains suchen (da ich sicher bin, dass es viele von Ihnen sind), hat dies tatsächlich einen Zweck. Ich wollte diese Gelegenheit nutzen, um Ihnen nicht nur zu zeigen, wie ich diese bestimmte Erweiterung gemacht habe, sondern allgemein, wie Sie eine Erweiterung für den Chrome-Webbrowser erstellen.
Es gibt verschiedene Arten von Chrome-Erweiterungen, aber wir werden eine Browser-Aktionserweiterung erstellen, die beim Klicken ein Popup-Fenster anzeigt. Google hat einen guten Überblick über die einzelnen Erweiterungen. Im Wesentlichen müssen Sie wissen, dass jede Erweiterung ein Verzeichnis von Dateien ist, ähnlich einer Website. Ich werde später im Tutorial mehr über jede dieser Dateien besprechen, aber das Verzeichnis jeder Erweiterung enthält die folgenden Dateien, die direkt von Google übernommen werden:
Manifest.json-Datei
HTML-Dateien
(sofern die Erweiterung kein Thema ist)Javascript-Dateien
Die Manifestdatei enthält hauptsächlich Metainformationen zur Erweiterung. Hier definieren Sie Dinge wie Name, Version, Symbol und sogar Berechtigungen.
Die API von Domai.nr kann hier gefunden werden. Wir verwenden die JSON-API, die zwei Methoden hat: Suchen und Info. Sie wird JSON-API genannt, weil sie JSON zurückgibt. Beide Methoden reagieren auf eine GET-Anforderung, sodass wir einfach alles, was wir in unserer Anforderungs-URL benötigen, verketten können, und der Rest wird in Ordnung gebracht.
manifest.json
DateiWie Sie sehen, ist eine Chrome-Erweiterung nicht viel mehr als eine einfache Website. Die Struktur, die wir verwenden werden, lautet wie folgt:
domainr.html
- das entspricht dem index.html
in den meisten Websites. Ich ziehe es vor, die Haupt-HTML-Datei der Erweiterung selbst zu benennen - das ist nur eine persönliche Präferenz.icon.png
- diese 128px von 128px
Das Symbol ist das, was der Benutzer in der Symbolleiste sieht. Wenn sie auf dieses Symbol klicken, wird unsere Erweiterung ausgelöst.Bilder /
- Dieses Verzeichnis enthält alle Bilder, die wir verwenden werden, genau wie eine herkömmliche Website. Ich habe mich mit den Entwicklern von Domai.nr in Verbindung gesetzt und habe die Erlaubnis erhalten, alle Bilder, die sie auf ihrer Website haben, zu verwenden, nur verkleinert. Also habe ich einfach den Web Inspector von Chrome verwendet, Kopien davon heruntergeladen und entsprechend skaliert.manifest.json
- das manifest.json
In der Datei werden, wie oben erläutert, viele Eigenschaften über unsere Erweiterung definiert. Es ist erforderlich, aber es ist ziemlich einfach zu erstellen.script.js
- In dieser JavaScript-Datei werden alle unsere jQuery-Dateien gespeichert. Wir werden es im verweisen domainr.html
Datei, und es wird die gesamte Logik in unserer Erweiterung steuern.style.css
- Endlich ist hier unsere Stylesheet-Datei. Wir werden das natürlich auch im domainr.html
Datei.Zeit, sich in unseren Code einzuarbeiten und loszulegen! Unsere manifest.json
Die Datei ist ziemlich einfach. Um eine detailliertere Zusammenfassung aller in einer Manifestdatei unterstützten Felder anzuzeigen, checken Sie dies aus. Den gesamten Code finden Sie in unserer manifest.json-Datei:
"name": "Domai.nr Search", // der Name der Erweiterung "version": "1.0", // Versionsnummer "description": "Geben Sie Ihren Domänen ein Happy End.", // in // verwendete Beschreibung Der Chrome Webstore "browser_action": "default_icon": "icon.png", // gibt das Standardsymbol "popup": "domainr.html" an // die Seite, die angezeigt wird, wenn auf das Symbol geklickt wird, "Berechtigungen": ["http://domai.nr", // Wir erteilen der Erweiterung die Berechtigung zum Zugriff auf Daten auf diesen Websites. "http://domai.nr/*" // Suffix mit *, damit / api erreichbar ist.]
Wie Sie an den Kommentaren erkennen können, ist das recht einfach. Der Abschnitt mit den Berechtigungen ist in unserem Fall äußerst wichtig. Andernfalls wird ein XHR-Fehler angezeigt, da die Erweiterung nicht auf Domänen zugreifen kann, für die sie keine Berechtigung erteilt. Daher die Bedeutung des Abschnitts "Berechtigungen".
Für unsere Erweiterung gibt es im Wesentlichen drei Teile:
Element mit einem
, Hier gibt der Benutzer die Suchanfrage ein, nach der er sucht. Darauf konzentriert sich dieser Schritt des Tutorials.
mit mehreren
Elemente im Inneren, die basierend auf ihrer Anforderung in Teil 1 aufgefüllt werden.Ich denke, es ist fair zu sagen, dass die Erweiterung komplexer wird, wenn der Benutzer die oben beschriebenen Teile oder Stufen durchläuft. Nachdem dies gesagt wurde, lasst uns in den HTML-Code einsteigen, mit dem ich das strukturierte.
Domai.nr Chrome-Erweiterung Okay - das ist es, soweit es um die Eingabe des Benutzers geht (zumindest auf der HTML-Seite). Um etwas beschreibender zu sein, wird dieser Code dem Benutzer angezeigt, wenn er auf das Symbol klickt, um die Erweiterung auszulösen. Es ist nur ein Eingabefeld, das wir so gestalten möchten, dass die Seite von domai.nr so aussieht. Sie werden feststellen, dass ich nur eine habe
Und jetzt ist es Zeit zu testen. Hoffen Sie nicht auf, denn es wird ziemlich hässlich aussehen?
Vorausgesetzt, es ist alles gut, sollten Sie jetzt eine Liste aller Domänen sehen, die sich auf eine Abfrage beziehen, die der Benutzer eingibt (wie oben). Es sieht zwar ziemlich hässlich aus, aber unsere Erweiterung ist nun korrekt in die Suchmethode der Domai.nr-API eingebunden und nimmt die Ergebnisse korrekt wieder auf. Glückwunsch!
Bevor wir jedoch mit dem letzten Abschnitt des Tutorials fortfahren, müssen wir einige Aufräumarbeiten erledigen. Wir müssen das Symbol anzeigen, das anzeigt, ob die Domain verfügbar ist, möglicherweise verfügbar ist oder belegt ist, und auch das Aussehen der Liste aufräumen. Einige einfache CSS werden das problemlos erledigen.
ul display: block; Lösche beide; Marge: 0; Auffüllen: 0; ul li Schriftgröße: 15px; Farbe: # 333333; Bildschirmsperre; Breite: 100%; Zeilenhöhe: 24px; Rand links: 10px; Breite: 100%; Position: relativ; ul li .bg width: 15px; Höhe: 15px; Bildschirmsperre; float: left; ul .available .bg background: url ("images / available.png") 0 7px no-repeat; Breite: 15px; Höhe: 19px; Bildschirmsperre; Schwimmer: links; Rand links: 10px; ul .nothing .bg width: 15px; Höhe: 19px; Bildschirmsperre; Schwimmer: links; margin-left: 10px; ul .maybe .bg background: url ("images / maybe.png") 0 7px no-repeat; Breite: 15px; Höhe: 19px; Bildschirmsperre; Schwimmer: links; Rand links: 10px; ul li a color: # 2870B0; Textdekoration: keine; Breite: 100%; Anzeige: Block; .loader-sub Position: absolut; rechts: 38px; top: 4px; ul li a: hover hintergrund: url ("images / grey.png") no-repeat oben links; Cursor: Zeiger; # results-info a: hover background: none; Textdekoration: Unterstrichen; Cursor: Zeiger; # results-info h3 margin-top: 11px; Text ausrichten: Mitte; Bildschirmsperre; width: 340px; # results-info .available color: # 23B000! important; Textschatten: rgba (100%, 100%, 100%, 1,0) 0 1px 2px; Schriftgröße: 24px; ul li a.active background: url ("images / blue.png") no-repeat left top; Farbe: #ffffff;
Großartig - jetzt sieht alles sehr schön und sauber aus - genau wie die echte Domai.nr-Site! Endlich ist es Zeit, zu den guten Sachen zu gelangen.
Dieser letzte Abschnitt ändert die Benutzeroberfläche der Erweiterung am meisten, aber wenn wir sie in Schritte unterteilen, ist sie überhaupt nicht so schlimm.
Okay - lass uns das durchdenken. Wenn der Benutzer zunächst auf einen Doamain klickt, soll das Popup breiter werden und Informationen zu dieser bestimmten Domäne anzeigen. Überhaupt kein Problem. Wir müssen jedoch etwas mehr Struktur in unseren Code einfügen, damit er richtig funktioniert.
Registrieren Sie sich bei:
TLD:
- Wikipedia
- IANA
Werkzeuge:
- Site besuchen (www)
- WER IST
Angetrieben durch Domai.nr.
Daher sollten die Kommentare für diese HTML-Struktur erklärend genug sein. Wir werden jedoch nicht viel merken, bis wir unserer Erweiterung etwas mehr Interaktivität geben. Jetzt, da wir die Struktur heruntergefahren haben, wollen wir das tun, indem wir jQuery hinzufügen.
$ ("# results-list a"). live ('click', function () // 'live' ist erforderlich, da die Elemente das DOM auffüllen, nachdem der Benutzer nach etwas sucht; nicht onLoad. $ (this). Geschwister ('. loader-sub'). css ('Sichtbarkeit', 'sichtbar'); // den sekundären Loader $ (". Erweiterung a"). first (). remove (); // die vorherige Erweiterung entfernen (Link neben 'TLD'). $ (". registrars ul li"). remove (); // den vorherigen Eisträger ausblenden
Dieser Code enthält alle Informationen, die wir für die Wikipedia-URL, die IANA-URL, die Whois-Informationen, den Site-Link und die Erweiterungsinformationen benötigen. Nachfolgend werden wir untersuchen, wie ich unter anderem die Registrar-Informationen geladen habe!
// der Code oben? if (json.registrars.length < 1) // if there are no registrars available $(".registrars ul").append('
Fantastisch! Die Informationen werden jetzt geladen, aber sie sehen ziemlich durcheinander. Keine Sorge, fügen Sie einfach das folgende CSS hinzu, um es hübsch aussehen zu lassen und der heutigen Übung ein Ende zu setzen.
#links float: left; Breite: 250px; Polsterung unten: 10px; # results-info float: right; Breite: 510px; display: none; .register-stuff overflow: hidden; .right float: right; .extension float: right; Schriftgröße: 13px; Rand rechts: 70px; # load-more color: # 6C9DC9; Schriftgröße: 12px; Zeilenhöhe: 18px; abbr float: left; # results-info h4 margin-bottom: 9px; Schriftgröße: 16px; Schriftdicke: fett; vertikal ausrichten: oben; margin-top: 0; # results-info .sections> li position: relativ; Schwimmer: links; Breite: 140px; Rahmen links: 1px fest # A9ADA8; Polsterung links: 9px; margin-right: 10px; # results-info .sections li ul li margin-left: 0; Zeilenhöhe: 20px; # results-info .sections li ul li a font-size: 13px; display: inline; #footer overflow: hidden; Schriftgröße: 11px; Farbe: # 666; Höhe: 20px; Lösche beide; margin-right: 15px; #footer p margin: 0; Polsterung: 0; text-align: right; #footer p a color: # 666; #footer p a: hover color: # 333333;
Und da hast du es! Herzlichen Glückwunsch, Sie haben soeben eine clevere Chrome-Erweiterung mit der API eines großartigen Services erstellt! Ich baute es aus, während ich in einem Flughafen auf einen Zwischenaufenthalt wartete; Dies hilft zu beweisen, wie einfach und schnell eine davon hergestellt werden kann. Ehrlich gesagt ist eine Chrome-Erweiterung nicht schwieriger als eine normale Webseite. Wenn Sie irgendwelche Fragen haben, lassen Sie sie bitte in den Kommentaren unten!