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…