Я пытаюсь перехватить событие вставки (ctrl + v) и скопировать содержимое из буфера обмена. Если я прикрепляю событие вставки к документу, оно не работает на IE (v11), хотя оно работает на chrome. Однако если я присоединяю событие к элементу с contenteditable='true'
, то оно работает и на IE.
Есть идеи, почему это так?
<!doctype html>
<html lang="en">
<body>
<div id='editableDiv' contenteditable='true'>Paste</div>
<script>
function handlePaste (e) {
var clipboardData, pastedData;
// Stop data actually being pasted into div
e.stopPropagation();
e.preventDefault();
// Get pasted data via clipboard API
clipboardData = e.clipboardData || window.clipboardData;
pastedData = clipboardData.getData('Text');
// Do whatever with pasteddata
alert(pastedData);
}
//document.addEventListener('paste', handlePaste);
document.getElementById('editableDiv').addEventListener('paste', handlePaste);
</script>
</body>
</html>
Это работает для ie:
document.getElementById('editableDiv').addEventListener('paste', handlePaste);
Хотя это не так:
document.addEventListener('paste', handlePaste);
Редактировать
Казалось бы, IE поддерживает это событие только для редактируемых элементов.