Ответ 1
ОБНОВЛЕНИЕ:
Все основные браузеры теперь предоставляют вам доступ к данным буфера обмена в событии вставки. Смотрите Ответ Нико Бернса для примера в новом браузере, а также проверьте ответ Tim Down, если вам нужно поддержать более старые браузеры.
Вы можете прослушать onPaste событие в div, чтобы обнаружить пасту. Если вы просто хотите отключить вставку, вы можете вызвать event.preventDefault()
из этого прослушивателя.
Чтобы захватить вставленный контент, это немного сложнее, так как событие onPaste
не дает вам доступ к вставленному контенту. Обычный способ справиться с этим состоит в том, чтобы сделать следующее из обработчика события onPaste
:
- создайте фиктивный div и поместите его за границы окна, чтобы он не отображался посетителям.
- переместите фокус на этот div
- вызов метода дезинфицирующего средства с помощью
setTimeout(sanitize, 0)
и от вашего метода дезинфекции:
- найдите фиктивный div и получите его содержимое
- дезинфекция HTML и удаление div
- переместите фокус обратно в исходный div
- вставьте дезинфицированный контент в исходный div