Escribir una ingeniosa extensión de Chrome honestamente no es tan difícil como podrías pensar. En este tutorial, te mostraré cómo tomé una API ofrecida por un excelente servicio de búsqueda de nombres de dominio, Domai.nr, y creé una extensión de Chrome para ellos, simplemente utilizando su API..
En este tutorial, te mostraré cómo hice la extensión Chrome de Domai.nr, utilizando HTML simple, CSS y jQuery. El flujo de trabajo típico de esta extensión se puede desglosar así:
Entonces, no es revolucionario ni innovador, pero cuando buscas dominios con bastante frecuencia (como estoy seguro de que muchos de ustedes lo son), en realidad tiene un propósito. Quería aprovechar esta oportunidad para no solo mostrarle cómo hice esta extensión específica, sino también, en general, cómo hacer una extensión para el navegador web Chrome.
Hay algunos tipos diferentes de extensiones de chrome, pero haremos una extensión de acción del navegador que muestre una ventana emergente cuando se haga clic. Google tiene una gran visión general de lo que hay en cada extensión. Esencialmente, lo que necesita saber es que cada extensión es un directorio de archivos, al igual que un sitio web. Discutiré más sobre cada uno de estos archivos más adelante en el tutorial, pero el directorio de cada extensión contiene los siguientes archivos, y esto se toma directamente de Google:
archivo manifest.json
Archivos HTML
(a menos que la extensión sea un tema)Archivos Javascript
El archivo de manifiesto proporciona mayormente información meta sobre la extensión. Aquí es donde se definen cosas como el nombre, la versión, el icono e incluso los permisos..
La API de Domai.nr se puede encontrar aquí. Estamos utilizando la API JSON, que tiene dos métodos: búsqueda e información. Se llama API JSON porque, bueno, devuelve JSON. Ambos métodos responden a una solicitud GET, por lo que solo podemos concatenar lo que necesitemos en nuestra URL de solicitud, y el resto caerá en su lugar.
manifest.json
ExpedienteComo puede ver, una extensión de Chrome realmente no es mucho más que un sitio web básico. La estructura que usaremos es la siguiente:
domainr.html
- esto es equivalente a la index.html
Página en la mayoría de los sitios web. Prefiero nombrar el archivo HTML principal igual que la extensión en sí, es solo una preferencia personal.icon.png
- esta 128 px por 128 px
El icono es lo que el usuario ve en la barra de herramientas. Cuando hagan clic en este icono, se disparará nuestra extensión..imagenes /
- Este directorio contiene todas las imágenes que usaremos, al igual que un sitio web tradicional. Me puse en contacto con los creadores de Domai.nr y obtuve permiso para usar todas las imágenes que tienen en su sitio web, simplemente a escala reducida. Entonces, solo utilicé el Inspector web de Chrome y descargué copias de ellos, y los escalé en consecuencia.manifest.json
- la manifest.json
El archivo, como se explicó anteriormente, es donde definimos muchas propiedades sobre nuestra extensión. Es requerido, pero es bastante simple de crear..script.js
- este archivo JavaScript es donde se lleva a cabo todo nuestro jQuery. La referenciaremos en el domainr.html
archivo, y controlará toda la lógica en nuestra extensión.style.css
- Finalmente, aquí está nuestro archivo de hojas de estilo. Obviamente también haremos referencia a esto en el domainr.html
expediente.¡Es hora de profundizar en nuestro código y empezar! Nuestro manifest.json
El archivo es bastante simple. Para ver un resumen más detallado de todos los campos admitidos en un archivo de manifiesto, compruebe esto. Puede encontrar todo el código utilizado en nuestro archivo manifest.json a continuación:
"name": "Domai.nr Search", // el nombre de la extensión "version": "1.0", // número de versión "description": "Dale a tus dominios un final feliz.", // descripción usada en Chrome Webstore "browser_action": "default_icon": "icon.png", // especifica el icono predeterminado "popup": "domainr.html" // la página para mostrar cuando se hace clic en el icono, "permisos": ["http://domai.nr", // le damos permiso a la extensión para acceder a los datos en estos sitios. "http://domai.nr/*" // lo colocamos con un *, por lo que / api es accesible]
Como se puede ver en los comentarios, es bastante sencillo. La sección de permisos es extremadamente importante en nuestro caso. De lo contrario, obtendremos un error XHR porque la extensión no puede acceder a los dominios a los que no le da permiso. De ahí, la importancia de la sección de "permisos"..
Para nuestra extensión, básicamente habrá tres partes:
elemento, con un
, que es donde el usuario escribe en la consulta que están buscando. Esto es en lo que se enfocará este paso del tutorial..
con varios
Elementos dentro de él, que se rellena en función de su solicitud en la parte 1.Entonces, creo que es justo decir que la extensión gana complejidad a medida que el usuario avanza a través de las partes o etapas descritas anteriormente. Con eso dicho, vamos a profundizar en el HTML que utilicé para estructurar esto.
Extensión de cromo Domai.nr Bien, eso es todo, en lo que respecta a obtener información del usuario (bueno, en el lado HTML, al menos). Para ser un poco más descriptivo, ese código es lo que verá el usuario cuando haga clic en el icono para activar la extensión. Es solo un cuadro de entrada que vamos a diseñar para que parezca que el sitio domai.nr lo tiene. Notarás que simplemente tengo un
Y ahora es el momento de probar. Pero no te hagas ilusiones, porque se verá bastante feo.?
Suponiendo que todo está bien, ahora debería ver una lista de todos los dominios relacionados con una consulta en la que el usuario escribe (como arriba). Si bien es bastante feo, ahora tenemos nuestra extensión conectada correctamente al método de búsqueda de la API Domai.nr, y estamos recuperando los resultados correctamente. Felicidades!
Sin embargo, antes de pasar a la sección final del tutorial, tenemos que hacer algunas tareas de limpieza. Necesitamos mostrar el ícono que muestra si el dominio está disponible, tal vez disponible o tomado, y también simplemente limpiar el aspecto de la lista. Algunos CSS simples se encargarán de eso sin ningún problema..
ul display: block; Limpia los dos; margen: 0; relleno: 0; ul li font-size: 15px; color: # 333333; bloqueo de pantalla; ancho: 100%; altura de línea: 24px; margen izquierdo: 10px; ancho: 100%; posición: relativo; ul li .bg ancho: 15px; altura: 15px; bloqueo de pantalla; float: left; ul .available .bg background: url ("images / available.png") 0 7px no se repite; ancho: 15px; altura: 19px; bloqueo de pantalla; flotador izquierdo; margen izquierdo: 10px; ul .nothing .bg width: 15px; altura: 19px; bloqueo de pantalla; flotador izquierdo; margen izquierdo: 10px; ul .maybe .bg background: url ("images / maybe.png") 0 7px no se repite; ancho: 15px; altura: 19px; bloqueo de pantalla; flotador izquierdo; margen izquierdo: 10px; ul li a color: # 2870B0; texto-decoración: ninguno; ancho: 100%; pantalla: bloque; .loader-sub posición: absoluta; derecha: 38px; arriba: 4px; ul li a: hover background: url ("images / grey.png") sin repetición arriba a la izquierda; cursor: puntero; # results-info a: hover background: none; texto-decoración: subrayado; cursor: puntero; # results-info h3 margin-top: 11px; text-align: center; bloqueo de pantalla; ancho: 340px; # results-info .available color: # 23B000! important; text-shadow: rgba (100%, 100%, 100%, 1.0) 0 1px 2px; tamaño de fuente: 24px; ul li a.active background: url ("images / blue.png") sin repetición arriba a la izquierda; color: #ffffff;
Genial, ahora se ve bien y limpio, ¡al igual que el sitio real de Domai.nr! Finalmente, es hora de llegar a lo bueno..
Esta última sección cambia la interfaz de usuario de la extensión más, pero si la dividimos en pasos, realmente no está nada mal..
Bien, pensemos en esto. Primero, cuando el usuario hace clic en un doamain, queremos que la ventana emergente se ensanche y muestre información sobre ese dominio específico. No hay problema. Sin embargo, tendremos que agregar un poco más de estructura a nuestro código para hacerlo bien.
Registrarse en:
TLD:
- Wikipedia
- IANA
Herramientas:
- Visite el sitio (www)
- QUIEN ES
Desarrollado por Domai.nr.
Por lo tanto, los comentarios deberían ser lo suficientemente explicativos para esa estructura HTML, sin embargo, realmente no nos daremos cuenta hasta que le demos a nuestra extensión un poco más de interactividad. Ahora que hemos reducido la estructura, sigamos adelante y hagamos eso agregando jQuery.
$ ("# results-list a"). live ('click', function () // 'live' es obligatorio, porque los elementos llenan el DOM después de que el usuario busca algo; no está en la carga. $ (esto). hermanos ('. loader-sub'). css ('visibilidad', 'visible'); // oculta el cargador secundario $ (". extensión a"). first (). remove (); // elimina la extensión anterior (enlace al lado de 'TLD'). $ (". registrars ul li"). remove (); // ocultar los egistrar anteriores
El código anterior cargó toda la información que necesitamos para la URL de Wikipedia, la URL de la IANA, la información de Whois, el enlace del sitio y la información de extensión. A continuación, veremos cómo cargué la información del registrador, entre otras cosas.!
// el código de arriba? if (json.registrars.length < 1) // if there are no registrars available $(".registrars ul").append('
¡Fantástico! La información ahora se está cargando, pero se ve bastante desordenada. No se preocupe, simplemente agregue el siguiente CSS para que se vea bonito y ponga fin al ejercicio de hoy.
#left float: left; ancho: 250px; padding-bottom: 10px; # results-info float: right; ancho: 510px; pantalla: ninguna; .register-stuff desbordamiento: oculto; .right float: right; .extension float: right; tamaño de fuente: 13px; margen derecho: 70px; # load-more color: # 6C9DC9; tamaño de fuente: 12px; line-height: 18px; abbr float: left; # results-info h4 margin-bottom: 9px; tamaño de fuente: 16px; font-weight: negrita; alineación vertical: superior; margin-top: 0; # results-info .sections> li position: relative; flotador izquierdo; ancho: 140px; borde izquierdo: 1px sólido # A9ADA8; relleno-izquierda: 9px; margin-right: 10px; # results-info .sections li ul li margin-left: 0; line-height: 20px; # results-info .sections li ul li a font-size: 13px; pantalla: en línea; #footer desbordamiento: oculto; tamaño de fuente: 11px; color: # 666; altura: 20px; Limpia los dos; margen derecho: 15px; # pie de página margen: 0; relleno: 0; text-align: right; #footer p a color: # 666; #footer p a: hover color: # 333333;
¡Y ahí lo tienes! ¡Enhorabuena, acabas de hacer una ingeniosa extensión de Chrome con la API de un excelente servicio! Construí esto mientras estaba en un aeropuerto esperando una parada; Eso ayuda a demostrar lo sencillo y rápido que puede ser hacer uno de estos. Honestamente, una extensión de Chrome no es más difícil que una página web normal. Si tiene alguna pregunta, por favor déjelos en los comentarios a continuación.!