Как вы можете поймать событие вставки contentEditable? - PullRequest
7 голосов
/ 24 августа 2010

У меня есть отличная редактируемая область текста с wysihat и contentEditable Мне действительно нужен способ перехватывать события вставки, чтобы либо остановить их, либо обработать их DOM перед разрешением вставки. Немного странно, что люди могут вставлять целые веб-страницы в редактируемые области.

Возможно ли это?

Давай в будущем, приходи ко мне. HTML5 гуру, огонь!

Ответы [ 3 ]

3 голосов
/ 14 октября 2010

Вы не можете получить доступ к содержимому, которое будет вставлено.

Что вы можете сделать, это добавить прослушиватель событий, который запускает некоторый код очистки на Ctrl + V (с таймаутом, чтобы он видел вставленный текст)

2 голосов
/ 08 января 2011

событие onpaste работает нормально, по крайней мере, вы можете отклонить поведение вставки пользователя

someElement.onpaste = function() {
   // doSomething()
   return false; // to prevent user insert
}
1 голос
/ 05 января 2011

Событие textInput запускается до вставки текста и совместимо как с ctrl + v, так и с другими способами вставки текста (например, контекстное меню и т. Д.), Также имеет свойство .data, которое должно / может содержать содержимое вставлено, но я еще не видел этого в браузерах, которые поддерживают событие textInput.

Тем не менее, событие ввода запускается / после / вставки (когда dom уже изменился), поэтому я предполагаю, что какое-то сочетание двух из них может сработать в промежуточный период.

Или .. вы можете просто использовать событие вставки;)

...