En este artículo aprenderemos cómo implementar la función de copiar mediante JavaScript.

Método 1: Usar código JavaScript simple

Podemos usar el método de la API de ClipboardClipboard.writeText()oClipboard.write()para sobrescribir el contenido del portapapeles con los datos especificados.

Ejemplo

function myFunction() {
  /* Obtener el contenido del texto */
  var copyText = document.getElementById("myInput");

  /* Seleccionar el contenido a copiar */
  copyText.select();
  copyText.setSelectionRange(0, 99999); /* Configuración para dispositivos móviles */

   /* Copiar contenido al área de texto */
  navigator.clipboard.writeText(copyText.value);

  /* Mostrar el contenido copiado */
  alert("El texto copiado es: " + copyText.value);
}

Pruébalo »

Después de completar la copia, se puede usar una forma más amigable de avisar:

Ejemplo

function myFunction() {
  var copyText = document.getElementById("myInput");
  copyText.select();
  copyText.setSelectionRange(0, 99999);
  navigator.clipboard.writeText(copyText.value);
 
  var tooltip = document.getElementById("myTooltip");
  tooltip.innerHTML = "Contenido copiado: " + copyText.value;
}

function outFunc() {
  var tooltip = document.getElementById("myTooltip");
  tooltip.innerHTML = "Haz clic en el botón para copiar";
}

Pruébalo »

Método 2: Usar la biblioteca de terceros clipboard.js (recomendado, alta compatibilidad)

Podemos descargar clipboard.js e importarlo en el proyecto:

<script src="dist/clipboard.min.js.html"></script>

Por supuesto, lo más sencillo es usar directamente una biblioteca CDN nacional:

<script src="https://cdn.staticfile.org/clipboard.js/2.0.4/clipboard.min.js"></script>

Ejemplo

new ClipboardJS('#copyInput', {
    text: function(trigger) {
        return document.getElementById("myInput").value;
    }
}).on('success', function(e) {
   alert("¡¡¡Copia exitosa!!!");
   e.clearSelection();
}).on('error', function(e) {
    alert('Error!');
});

Pruébalo »

Compatibilidad de clipboard.js con los navegadores