Это решение работает только для нажатий клавиш, которые вызывают нужную операцию. Он работает путем перемещения курсора пользователя в элемент textarea до того, как пользователь завершит соответствующее нажатие клавиши. Работает только для ввода текста. У меня это работает в Firefox и Chrome. IE может использовать объект clipboardData (что предпочтительно для этого хака).
В вашем html-файле вы должны создать элемент textarea с произвольно большими атрибутами строк и столбцов. Элемент ' clipboard-textarea ' будет содержать область для вставленных и скопированных данных. Я скрываю элемент, используя некоторые атрибуты стиля.
Сценарий:
var desiredClipboardContents = 'It works';
function onCopyKeyPressed() {
// The trick here is to populate the textarea with
// the text you want copied before the user releases
// the copy keystroke.
var textarea = document.getElementById('clipboard-textarea');
textarea.value = desiredClipboardContents;
textarea.focus();
textarea.select();
}
function onPasteKeyPressed() {
var textarea = document.getElementById('clipboard-textarea');
textarea.value = '';
textarea.focus();
// The trick here is to delay slurping the content
// that arrives in the textarea element until after
// the paste keystroke is completed. The 750 ms timeout
// provides the necessary delay.
setTimeout("finishedPasting", 750);
}
function finishedPasting() {
var textarea = document.getElementById('clipboard-textarea');
alert("Received from clipboard-paste: " + textarea.value);
}