How to Code a “Click to Tweet” Button

Default avatar.
July 05, 2019

Having users share your content online is a great way to grow your brand. In this tutorial we’ll cover everything you need to know to add a simple link to your page, so that users can tweet it directly.

How to Code a “Click to Tweet” Button.

With Instagram, Snapchat and other “young” social media platforms taking over the internet, Twitter still remains one of the most popular marketing channels.

It has around 326 million active users per month which means that your target audience is likely using it. This is why you should at least consider using it as a marketing channel for your business. Having Twitter as one of the main marketing channels is not only going to help build awareness of your brand but can also drive traffic to your website and make your articles go viral.

How can this be achieved? Well, it’s a pretty straightforward tactic that some of the top bloggers are using. The idea is that within your blog post you have short pieces of content that are catchy and people like them. Those pieces of content can then be easily tweeted. (For example, it could be a quote from someone who is an authority in your niche, or a statistic that you feel is likely to be shared by your visitors.)

So, let me show you how you can have “click to tweet” buttons added automatically to every quote in your article.

Before we get started, let me say that this is a medium-advanced technique. If you’re using WordPress you can use a ready-to-go plugin that will serve the same purpose.

Creating “Click to Tweet” Buttons with JavaScript

Let’s assume that we want to turn from this article about conferences that says “According to webdesignerdepot.com ...” into a tweetable block.

Given that we have the following html structure:

<article id="article">
<blockquote> I only ever go to marketing conferences to meet new people and listen to their experiences. Those people never include the speakers, who are generally wrapped up in their own world and rarely give in the altruistic sense. </blockquote>
</article>

Here is how we would create a click to tweet button:

Step 1

We need to collect all the <quote> and <blockquote> elements from our article when the document loads:

document.addEventListener("DOMContentLoaded", function() {
 // Step 1. Get all quote elements inside the article
 const articleBody = document.getElementById('article');
 const quotes = [...articleBody.querySelectorAll('quote, blockquote')];

Step 2

Create additional variables to store the current page url, tweetable url and a ‘click to tweet’ button:

 let tweetableUrl = "";
 let clickToTweetBtn = null;
 const currentPageUrl = window.location.href;

Step 3

We need to iterate over all the quote elements that we want to make tweetable and append a “click to tweet button” for each of them:

 quotes.forEach(function (quote) {
 // Create a tweetable url
 tweetableUrl = makeTweetableUrl(
 quote.innerText, currentPageUrl
 );

 // Create a 'click to tweet' button with appropriate attributes
 clickToTweetBtn = document.createElement("a");
 clickToTweetBtn.innerText = "Click to Tweet";

 clickToTweetBtn.setAttribute("href", tweetableUrl);
 clickToTweetBtn.onclick = onClickToTweet;

 // Add button to every blockquote
 quote.appendChild(clickToTweetBtn);

 }); 
});

Step 4

Add 2 missing functions: makeTweetableUrl, that will create a tweetable URL, and onClickToTweet that will act as our event listener and open a window for the tweet (once the button is clicked):

function makeTweetableUrl(text, pageUrl) {
 const tweetableText = "https://twitter.com/intent/tweet?url=" + pageUrl + "&text=" + encodeURIComponent(text);
 return tweetableText;
}

function onClickToTweet(e) {
 e.preventDefault();

 window.open(
 e.target.getAttribute("href"),
 "twitterwindow", 
 "height=450, width=550, toolbar=0, location=0, menubar=0, directories=0,scrollbars=0"
 );

}

Here it is working on CodePen.

Creating “Click to Tweet” Buttons with jQuery

Now, let me show you a slightly different way to get the same result that you can implement if you’re using jQuery.

Here is the code:

$(document).ready(function() {

 // Get all quote elements inside the article
 const articleBody = $("#article");
 const quotes = articleBody.find("quote, blockquote");
 let tweetableUrl = "";
 let clickToTweetBtn = null;

 // Get a url of the current page 
 const currentPageUrl = window.location.href;

 quotes.each(function (index, quote) {
 const q = $(quote);
 // Create a tweetable url
 tweetableUrl = makeTweetableUrl(
 q.text(), currentPageUrl
 );

 // Create a 'click to tweet' button with appropriate attributes
 clickToTweetBtn = $("<a>");
 clickToTweetBtn.text("Click to Tweet");

 clickToTweetBtn.attr("href", tweetableUrl);
 clickToTweetBtn.on("click", onClickToTweet);

 // Add button to every blockquote
 q.append(clickToTweetBtn);

 });
});

function makeTweetableUrl(text, pageUrl) {
 const tweetableText = "https://twitter.com/intent/tweet?url=" + pageUrl + "&text=" + encodeURIComponent(text);
 return tweetableText;
}

function onClickToTweet(e) {
 e.preventDefault();
 window.open(
 e.target.getAttribute("href"),
 "twitterwindow", 
 "height=450, width=550, toolbar=0, location=0, menubar=0, directories=0, scrollbars=0"
 );
}

As you can see, the code is the same, except that it takes advantage of jQuery’s functions to simplify the code we have to write. Here’s the jQuery version working on CodePen.

Conclusion

As you can see, creating a “click to tweet” button doesn’t require much time but it can be a great way to encourage your visitors to share your content on Twitter.

I hope this tutorial was helpful and you learned something new. Feel free to use this piece of code and implement it on your website.

Featured image via DepositPhotos.

Andriy Haydash

Andriy Haydash is a founder of PROGMATIQ web design agency. He specializes in building websites for small business owners to help them build and grow their brand online.

Read Next

3 Essential Design Trends, December 2023

While we love the holidays, too much of a seasonal theme can get overwhelming. Thankfully, these design trends strike a…

10 Easy Ways to Make Money as a Web Designer

When you’re a web designer, the logical way to make money is designing websites; you can apply for a job at an agency,…

The 10 Most Hated Fonts of All Time

Remember when Comic Sans wasn’t the butt of the jokes? Long for the days when we actually enjoyed using the Impact…

15 Best New Fonts, November 2023

2023 is almost over, and the new fonts are still coming thick and fast. This month, we’ve found some awesome variable…

Old School Web Techniques Best Forgotten

When the web first entered the public consciousness back in the 90s, it was primarily text-based with minimal design…

20 Best New Websites, November 2023

As the nights draw in for the Northern hemisphere, what better way to brighten your day than by soaking up some design…

30 Amazing Chrome Extensions for Designers and Developers

Searching for a tool to make cross-platform design a breeze? Desperate for an extension that helps you figure out the…

Exciting New Tools for Designers, November 2023

We’ve got a mix of handy image helpers, useful design assets, and clever productivity tools, amongst other treats. Some…

The Dangers of Doomscrolling for Designers and How to Break Free

As a creative professional, navigating the digital realm is second nature to you. It’s normal to follow an endless…

From Image Adjustments to AI: Photoshop Through the Years

Remember when Merriam-Webster added Photoshop to the dictionary back in 2008? Want to learn how AI is changing design…

3 Essential Design Trends, November 2023

In the season of giving thanks, we often think of comfort and tradition. These are common themes with each of our three…

30 Obsolete Technologies that will Perplex Post-2000s Kids

Remember the screech of dial-up internet? Hold fond memories of arcade machines? In this list, we’re condensing down 30…