1
respuesta

[Proyecto] ENCRIPTADOR

Hola tengo un problema, de cómo puedo hacer que funcione el botón copiar del Challenge Encriptador, he visto 2 formas pero las he intentado y no me funcionan.

Esos son los 3 botones, solo no puedo hacer que el boton copiar copie el texto de mi etiqueta p (modificarTextoElemento("mensajeEncriptado", imprimirMensajeEncriptado());)

function botonEncriptarMensaje() {
  //Ocultar elementos
  ocultarElementosIniciales();
  //Modificar elementos
  modificarTextoElemento("mensaje1", "Mensaje Encriptado: ");
  modificarTextoElemento("mensajeEncriptado", imprimirMensajeEncriptado());
  limpiarCaja();
  mostrarElemento("botonCopiar");
}

function botonDesencriptarMensaje() {
  //Ocultar elementos
  ocultarElementosIniciales();
  //Modificar elementos
  modificarTextoElemento("mensaje1", "Mensaje Desencriptado: ");
  modificarTextoElemento("mensajeEncriptado", imprimirMensajeDesencriptado());
  limpiarCaja();
  mostrarElemento("botonCopiar");
}

function botonCopiarMensaje() {
  //oculta el boton copiar
  ocultarElemento("botonCopiar");
  //muestra imagen portapapeles
  mostrarElemento("portapapeles");
  modificarTextoElemento("mensaje1", "Mensaje copiado al portapapeles");
  ocultarElemento("botonCopiar");
  limpiarCaja();
}
1 respuesta

Hola Abel,

Para hacer que el botón de copiar funcione correctamente, puedes utilizar el método execCommand("copy") en JavaScript. Aquí tienes un ejemplo de cómo podrías implementarlo en tu código:

function botonCopiarMensaje() {
  // Obtener el texto a copiar
  var mensajeEncriptado = document.getElementById("mensajeEncriptado").innerText;

  // Crear un elemento de texto temporal
  var tempInput = document.createElement("input");
  tempInput.value = mensajeEncriptado;
  document.body.appendChild(tempInput);

  // Seleccionar el texto del elemento temporal
  tempInput.select();
  tempInput.setSelectionRange(0, 99999); // Para dispositivos móviles

  // Copiar el texto al portapapeles
  document.execCommand("copy");

  // Eliminar el elemento temporal
  document.body.removeChild(tempInput);

  // Mostrar mensaje de éxito
  modificarTextoElemento("mensaje1", "Mensaje copiado al portapapeles");
  ocultarElemento("botonCopiar");
  mostrarElemento("portapapeles");
  limpiarCaja();
}

Espero que esto te ayude a solucionar tu problema. Si tienes alguna otra pregunta, no dudes en preguntar. ¡Buena suerte con tu proyecto!

Espero haber ayudado y buenos estudios!