Właściwość
clipboardData
obiektu zdarzenia wywołana w wyniku jednego ze zdarzeń kopiowania i wklejania umożliwia zapis i odczyt danych ze schowka.
Aby zapisać dane do schowka w czasie obsługi zdarzenia kopiowania i wycinania, należy użyć metody
setData()
obiektu
clipboardData
, przekazując dane do skopiowania i typ MIME:
function customCopy(event){
event.clipboardData.setData("text/plain", "A copied string.");
}
Aby uzyskać dostęp do wklejanych danych, należy użyć metody
getData()
obiektu
clipboardData
, przekazując typ MIME formatu danych. Dostępne formaty są zgłaszane przez właściwość
types
.
function customPaste(event){
var pastedData = event.clipboardData("text/plain");
}
Dostęp do metody
getData()
i właściwości
types
można uzyskać wyłącznie w obiektach zdarzeń wywołanych przez zdarzenie
paste
.
Następujący przykład przedstawia sposób zastępowania domyślnych ustawień kopiowania i wklejania na stronę HTML. Moduł obsługi zdarzeń
copy
pochyla skopiowany tekst i kopiuje go do schowka jako tekst HTML. Moduł obsługi zdarzeń
cut
kopiuje wybrane dane do schowka i usuwa je z dokumentu. Moduł obsługi
paste
wstawia zawartość schowka jako tekst HTML i pogrubia wstawiony tekst.
<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>