How to copy content to the clipboard with JavaScript

- Andrés Cruz

En español
How to copy content to the clipboard with JavaScript


In this entry we will see how to copy a text that is established in our HTML to our clipboard using JavaScript without the need to use Flash or any third-party technology.

The clipboard is nothing more than a tool of the operating system that allows you to store data such as texts and images.

The clipboard is generally accessed using the combination Ctrl + C to copy and Ctrl + V to paste.

We will create a simple function whose core is the method called execCommand that allows executing commands to the current document with the current selection, this may sound a bit confusing but it is actually quite an easy function.

With what was said above, and for it to work we must have a hidden text field or another that allows us to create a selection field which is the current selection field that we will use to empty the text that we want to copy to the clipboard that will then be copied. via the execCommand method with the "copy" parameter; without going any further the function:

function copiar(id_elemento) {

// Crea un campo de texto "oculto"
var aux = document.createElement("input");

// Asigna el contenido del elemento especificado al valor del campo
aux.setAttribute("value", document.getElementById(id_elemento).innerHTML);

// Añade el campo a la página

// Selecciona el contenido del campo;

// Copia el texto seleccionado

// Elimina el campo de la página

console.log("texto copiado")

You can put the previous script to good use by creating a text field with editable content as we have seen above in: HTML editable sections with the contenteditable attribute.

Browser Support

Before using the command document.execCommand("copy"); it is good practice to check for browser support; To do this we use the following command:

Internet Explorer10+
Google Chrome43+
Safari(sin soporte)

You can check the original experiment here Copiar el contenido de un elemento al portapapeles usando JavaScript


Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.