Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estava lendo sobre o assunto e, encontrei vários artigos dizendo que esse tipo de ação com javascript é algo "arriscado" e muitos navegadores impediram que isso seja feito. Ainda, nos artigos que li, diziam que a única forma de fazer algo semelhante é usando flash.
Então, procurei no google por soluções e encontrei o ZeroClipboard (https://github.com/zeroclipboard/zeroclipboard) , mas não consegui usá-lo. Eu tentei da seguinte forma:
$(document).ready(function(){
var client = new ZeroClipboard( $('button') );
client.swfPath = 'ZeroClipboard.swf'; // está na pasta do projeto
$( 'button' ).on( 'click', function(){
client.setData( "text/plain", "TESTE" );
});
});
O que está errado?
O botão perde o efeito de hover e é exibido que está com flash nele. Mas quando clico, a string "TESTE" não é copiada para o clipboard.
PS: No console não é exibido nenhum erro.
Em último caso: Há alguma outra forma de se fazer isso? Outros plugins?
Vendo os arquivos js no diretório test.
Essa aí não é a documentação, é só um exemplo.
Exemplo, documentação, como queira chamar.
A desse projeto é muito vaga. Existem diversos exemplos, mas nenhum que assemelha ao que eu preciso. Pra falar a verdade, estou quase desistindo do plugin e optando por selecionar o texto e pedir que o usuário dê um ctrl+v.
Você tem conhecimento de algum outro plugin semelhante?
Desconheço.
<html>
<body>
<script type="text/javascript" src="ZeroClipboard.js"></script>
<div id="d_clip_button" style="border:1px solid black; padding:20px;">Copy To Clipboard</div>
<script language="JavaScript">
var clip = new ZeroClipboard.Client();
var myTextToCopy = "Hi, this is the text to copy!";
clip.setText( myTextToCopy );
clip.glue( 'd_clip_button' );
</script>
</body>
</html>
ou também usar o plugin jQuery liveclipboard ele adiciona funcionalidade de dados copiar / colar estruturado em aplicativos web e aplicativos, mesmo desktop. Em aplicações web, como você sabe, o acesso a área de transferência do sistema operacional é muito limitado. IE tem clipboardData objeto, mas aumentando de diálogo de alerta, por padrão, o Flash também restringe cópia automática, sem interação do usuário.
A idéia é semelhante ao velho-dia Microsoft Live Clipboard, mas permite uma integração muito mais fácil, fornecendo como um plugin jQuery.
uso
$('.clippable').clipboard({
/ Return copying string data to clipboard /
copy : function() {
// return $(this).text();
},
/* Process pasted string data from clipboard */
paste : function(data) {
// $(this).text(data);
},
/* Process delete signal */
del : function() {
// $(this).remove();
}
// "cut" command is "copy" + "del" combination
});
Como você chegou a esse código? Na documentação parece que está diferente.