Accessing the clipboard in JavaScript

Developers are probably the laziest people on the planet. And of all the things, copy-paste is our favorite keyboard shortcut. But what is better than hitting ctrl + c? Having a button do the copying for you! And that is now possible using an asynchronous version of the clipboard API in JavaScript.

You would have probably come across this while copying code off of a website, or an API key, or copying links from Google Drive:

The clipboard API

- Advertisement -

document.execCommand() has been available to copy text way before the clipboard API became a thing. But it was a synchronous call, did not work correctly across all browsers (permission access was not consistent either), and had some security risks associated with it.

The newer asynchronous clipboard API is supported by all browsers and is more secure (only works on HTTPS pages by default, and is not available to background tabs).

Implementing using JavaScript

// copying to clipboard
navigator.clipboard.writeText(SOME_VALUE)
    .then(() => alert("Text is now stored your cliboard!"));

// copying from clipboard
await readText = await navigator.clipboard.readText();

We will need more code to detect support in the browser and error handling. But that is the gist of the API.

And both the methods are supported in all modern browsers. And that is it. Hope this was helpful and that you start using it in the relevant places.

Recent Articles

How to sort a Set in JavaScript

ES6 introduced the set data structure in JavaScript. But sets are not ordered abstract data structures. So there is no .sort() property...

Debugging CSS scroll using one simple style

I have been doing a lot of complicated front-end work off lately and that always brings me back to the class conundrum...

CSS :has a parent selector now

CSS now includes a :has selector that allows us to apply styles on the basis of what is happening inside an element....

How to fix “invalid active developer path” after MacOS update

If you are here, then you are getting an "invalid active developer path" error on running commands in the terminal after a...

Getting the value of an input element as a number without parseInt

Every once in a while, you come across something and you think, how did I not know this earlier? valueAsNumber is that thing...

Related Stories

2 Comments

Leave A Reply

Please enter your comment!
Please enter your name here

Hi there! Want some more knowledge?

Think that the knowledge shared is helpful? You might want to give our mailing list a try. We'll send you 2-4 emails a month, right when new posts come out.