Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How to Make a Chrome Extension in 5 Minutes

DZone's Guide to

How to Make a Chrome Extension in 5 Minutes

In this article, learn step-by-step how to make an awesome extension in Google's web browser, Chrome, using the three basic web dev language: HTML, CSS, and JavaScript.

· Web Dev Zone
Free Resource

Learn how to build modern digital experience apps with Crafter CMS. Download this eBook now. Brought to you in partnership with Crafter Software

What Is a Chrome Extension?

Before making a Chrome Extension, we must have a basic idea of what an extension actually is. It is a plugin, or add-on, made to enhance the features of your browser.

In this post, we will make a chrome extension that will show awesome backgrounds and show the quote of the day every time you open a new tab. This extension will work in Google Chrome as well as all the other chromium based browsers.

Prerequisites :

You need to know the basics of the following:

  • HTML
  • CSS
  • JavaScript

We will make a simple website with HTML, CSS, and JavaScript and host it inside Google Chrome. We can add our business logic with the help of JavaScript. To make a Chrome Extension, there are some best practices or formats that we should follow.

How to Make a Chrome Extension With Javascript ( Step by Step Guide )

Let's get started. Building an Extension is very easy, just follow the steps below.

Step 1 

Open your Google Chrome and go to, chrome://extensions/. Then enable developer mode.

How to make a chrome extension in javascript developer mode

Step 2

Go to extensionizr.com and select one of the following options (you can read more about what to do with these by hovering over the '?' at each option ):

  • Hidden Extension
  • No Background
  • No fancy options
  • Override New Tab
  • Add jQuery

How to make a chrome extension in javascript hidden extension

After you have done this, download the zip file.

Step 3

Once you extract the zip file, go to manifest.json file in the main folder and edit the manifest.json. Manifest.json contains all the metadata that your Chrome Extension will need, it is the entry point of the extension. This is nothing but a JavaScript Object with the following properties like name, version, description etc. you may not have the permissions property simply copy paste from here it will need later.

{
"name": "Beautiful New Tab",
"version": "0.0.1",
"manifest_version": 2,
"description": "Get beautiful images with quotes whenever you open a new tab.",
"homepage_url": "http://codesparta.com",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"default_locale": "en",
"chrome_url_overrides": {
"newtab": "src/override/override.html"
},
"permissions": [ "https://source.unsplash.com/","http://quotes.rest/"]
}

Step 4

Create a.css file and a.js file in CSS and js folders respectively.

Step 5  

Making the basic HTML document. Go to src/override/ you will find override.html file.

Add both.js and.css files in the override.html

<!DOCTYPE html>
<html>
  <head>
<title>Make a Chrome Extension | Beautiful New Tab</title>
<link href="../../css/custom.css" rel="stylesheet" />
</head>
<body>
  <h1>Quote of the day</h1>
  <div class="quote">
     <h1 id="quoteblock"></h1>
     <h3 id="author"></h3>
  </div>
<script src="../../js/jquery/jquery-1.12.3.min.js"></script>
<script src="../../js/jquery/app.js"></script>
</body>
</html>

Step 6

We are going to use the following two websites. Unsplash will provide us with some awesome images, and the TheySaidSo will provide us with the daily quote.

To make a request to external links we have to add URL's in permissions in manifest.json.

Add the following CSS in the custom.css (We have used PT serif Google font )

@import url(https://fonts.googleapis.com/css?family=PT+Serif:400italic);
body {
background-image:url("https://source.unsplash.com/category/nature/1600x900");
background-repeat:no-repeat;
height:100%;
width:auto;
 
}
h1{
font-family: 'PT Serif', serif;
font-size:2.5em;
text-align:center;
color:#fff;
text-shadow:2px 2px 3px rgba(150,150,150,0.75);
 
}
.quote{
color:#ffffff;
text-align:center;
vertical-align:middle;
padding:19% 15% 0 15%;
}
 
#quoteblock{
font-family: 'PT Serif', serif;
text-shadow:2px 2px 3px rgba(150,150,150,0.75);
font-size:2em;
}
 
#author{
font-family: 'PT Serif', serif;
text-align:center;
color:#fff;
text-shadow:2px 2px 3px rgba(150,150,150,0.75);
}


Step 7 

Getting a quote from theysaidso API. We have to request the to get the JSON data from API (http://quotes.rest/qod.json) and get the Quote from that we are doing this by using AJAX.

How to make a chrome extension in javascript use json data

Add the following code to the JavaScript file you made:

$(function(){
var url = "http://quotes.rest/qod.json";
var quote = $("#quoteblock");// the id of the heading
$.get(url, function (data) {
var the_quote = data;
quote.text(the_quote.contents.quotes[0].quote);
var author = $("#author");// id of author
author.text(the_quote.contents.quotes[0].author);
});
});


Step 8

Making the Chrome Extension (.crx) file. Load your folder to test first, and then go to pack extension that will make a.crx file that you can share with your friends. Simply drag and drop the.crx file on chrome://extensions/, and it will install the extension.

How to make a chrome extension in javascript make.crx file

How to make a chrome extension in javascript 5

Final Result 

Every time you open a new tab, a new image with a quote will show up. You can use a single image per day by using the background property of JSON data from the API.

How to make a chrome extension in javascript new tab override

How to make a Chrome Extension with JavaScript step by step guide

Crafter is a modern CMS platform for building modern websites and content-rich digital experiences. Download this eBook now. Brought to you in partnership with Crafter Software.

Topics:
javascript ,chrome extension ,web dev

Published at DZone with permission of Vivek Sharma. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}