A funcionalidade “Copiar para a área de transferência” é algo que todos nós usamos dezenas de vezes diariamente, mas a API do lado do cliente em torno dela sempre foi deficiente; algumas APIs mais antigas e implementações de navegadores exigiam uma caixa de diálogo assustadora no estilo “o senhor tem certeza?” antes que o conteúdo fosse copiado para a área de transferência – o que não é bom para a usabilidade ou confiança. Há cerca de sete anos, o escrevi no blog sobre o ZeroClipboard, uma solução para copiar conteúdo para a área de transferência de uma forma mais inovadora…
…e, por novidade, quero dizer usar o Flash. Todos nós odiamos o Flash hoje em dia, mas a funcionalidade é sempre o objetivo principal e ele era bastante eficaz para esse propósito, portanto, temos que admitir que era uma solução decente. Anos depois, temos uma solução melhor e sem Flash: clipboard.js.
A API clipboard.js para copiar para a área de transferência é curta e simples. Aqui estão alguns usos:
Cópia e corte de valores de área de texto e entrada
/* Textarea - Cut */ var clipboard = new Clipboard('.copy-button'); /* Input - Copy */ var clipboard = new Clipboard('.copy-button');
Cópia do innerHTML do elemento
/* HTMLElement - Copyhello
*/ var clipboard = new Clipboard('.copy-button');
Target
e Text
Funções
// Contents of an element var clipboard = new Clipboard('.copy-button', { target: function() { return document.querySelector('#copy-target'); } }); // A specific string var clipboard = new Clipboard('.copy-button', { text: function() { return 'clipboard.js is awesome!'; } });
Eventos
var clipboard = new Clipboard('.btn'); clipboard.on('success', function(e) { console.log(e); }); clipboard.on('error', function(e) { console.log(e); });
Sem Flash, com uma API simples e funcionando em todos os principais navegadores, o clipboard.js é uma grande vitória para a Web e seus usuários. Os dias da funcionalidade de shimming do Flash no lado do cliente acabaram – viva a tecnologia da Web!
CSS @supports
A detecção de recursos via JavaScript é uma prática recomendada do lado do cliente e por todos os motivos certos, mas, infelizmente, essa mesma funcionalidade não está disponível no CSS. O que acabamos fazendo é repetir as mesmas propriedades várias vezes com cada prefixo de navegador. Que nojo. Outra coisa que…
39 Shirts – Deixando a Mozilla
Em 2001, eu tinha acabado de me formar em uma escola de ensino médio de uma cidade pequena e estava indo para uma faculdade de uma cidade pequena. Encontrei-me no pitoresco laboratório de informática, onde os computadores de baixa qualidade apresentavam dois navegadores: Internet Explorer e Mozilla. Foi nesse laboratório que me apaixonei…
API de tela cheia
À medida que avançamos em direção a aplicativos da Web mais verdadeiros, nossas APIs JavaScript estão fazendo o possível para acompanhar o ritmo. Uma nova API JavaScript muito simples, mas útil, é a Fullscreen API. A API Fullscreen fornece uma maneira programática de solicitar a exibição em tela cheia do usuário e sair…
Cálculo de CSS
O CSS é um enigma completo; todos nós apreciamos o CSS por causa de sua simplicidade, mas sempre desejamos que a linguagem faça um pouco mais. O CSS evoluiu para acomodar marcadores de posição, animaçõese até mesmo clique em eventos. Um problema que sempre pensamos…