Почему в документ не добавлено событие «Вставить» для IE? - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь перехватить событие вставки (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 поддерживает это событие только для редактируемых элементов.

...