Ir para conteúdo

[JS] Elemento para copiar texto.


Pica-Pau

Posts Recomendados

Nego tem me perguntado como faz essa porcaria, então eu vou ensinar aqui. É puro JavaScript.

Basicamente você cria um elemento e quando esse elemento é clicado copia um texto. Simples.

 

JSFiddle

 

HTML:

<html>
  <head>
    <title>DevNatan ROLUDO</title>
  </head>
  <body>

    <button data-transform="Copie e cole kk" data-transform-text="Novo texto" data-transform-delay="5" id="Um id qualquer">
  Clique em mim para copiar qualquer porcaria
</button>

</body> </html>

 

 

JAVASCRIPT:

document.querySelector('[data-transform]').addEventListener('click', function(e) {
	copyTransform(this.id);
});

function copyTransform(id) {
  var ele 	= document.getElementById(id);
  var area 	= document.createElement("textarea");
  var copy 	= getTransform(id);
  var delay     = getTransformDelay(id);
  var text 	= getTransformText(id);
  
  var cache = ele.textContent;
  
  area.value = copy;
  
  document.body.appendChild(area);
	area.select();

	try {
		document.execCommand("copy");
    ele.textContent = text;
    
    setTimeout(function() {
    	ele.textContent = cache;
		}, delay * 1000);
	} catch (e) {
		alert("Ocorreu um erro ao copiar, tente novamente.");
	}

	document.body.removeChild(area);
}

function getTransform(id) {
	return document.getElementById(id).getAttribute("data-transform");
}

function getTransformDelay(id) {
	return parseInt(document.getElementById(id).getAttribute("data-transform-delay"));
}

function getTransformText(id) {
	return document.getElementById(id).getAttribute("data-transform-text");
}
Editado por Pica-Pau
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...