Короткий ответ: в общем случае вы не можете получить текст до его вставки. То, что вы можете сделать, это то, что делают большие веб-редакторы WYSIWYG, такие как CKEditor и TinyMCE, а именно:
- Обнаружение Ctrl - v / shift - ins с использованием
keypress
обработчика событий
- В этом обработчике сохраните текущий выбор пользователя, добавьте к документу элемент
<div>
вне экрана (скажем, слева -1000px), переместите каретку в этот раздел, таким образом эффективно перенаправив вставку
- Установите очень короткий таймер (скажем, 1 миллисекунду) в обработчике событий для вызова другой функции, которая извлекает содержимое HTML из div и выполняет любую необходимую обработку, удаляет div из документа, восстанавливает выбор пользователя и вставляет обработанный HTML.
Обратите внимание, что это будет работать только для событий вставки с клавиатуры, а не вставок из контекстного меню или меню редактирования. К тому времени, когда происходит событие вставки, уже слишком поздно перенаправлять курсор в div (по крайней мере, в некоторых браузерах).