A propriedade clipboardData do objeto de evento despachado como um resultado de um dos eventos de copiar ou colar permite que você leia e escreva dados da área de transferência.
Para escrever na área de transferência ao manipular um evento de copiar ou recortar, use o método setData() do objeto clipboardData, transmitindo os dados para copiar e o tipo MIME:
function customCopy(event){
event.clipboardData.setData("text/plain", "A copied string.");
}
Para acessar os dados que estão sendo colados, você pode usar o método getData() do objeto clipboardData, transmitindo o tipo MIME do formato de dados. Os formatos disponíveis são relatados pela propriedade types.
function customPaste(event){
var pastedData = event.clipboardData("text/plain");
}
O método getData() e a propriedade types podem apenas ser acessados no objeto de evento despachado pelo evento paste.
O exemplo a seguir ilustra como substituir o comportamento de copiar e colar padrão em uma página HTML. O manipulador de eventos copy coloca em itálico o texto copiado e o copia para a área de transferência como texto HTML. O manipulador de eventos cut copia os dados selecionados para a área de transferência e os remove do documento. O manipulador paste insere o conteúdo da área de transferência como HTML e aplica um estilo na inserção como texto em negrito.
<html>
<head>
<title>Copy and Paste</title>
<script language="javascript" type="text/javascript">
function onCopy(event){
var selection = window.getSelection();
event.clipboardData.setData("text/html","<i>" + selection + "</i>");
event.preventDefault();
}
function onCut(event){
var selection = window.getSelection();
event.clipboardData.setData("text/html","<i>" + selection + "</i>");
var range = selection.getRangeAt(0);
range.extractContents();
event.preventDefault();
}
function onPaste(event){
var insertion = document.createElement("b");
insertion.innerHTML = event.clipboardData.getData("text/html");
var selection = window.getSelection();
var range = selection.getRangeAt(0);
range.insertNode(insertion);
event.preventDefault();
}
</script>
</head>
<body onCopy="onCopy(event)"
onPaste="onPaste(event)"
onCut="onCut(event)">
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore
veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam
voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur
magni dolores eos qui ratione voluptatem sequi nesciunt.</p>
</body>
</html>