
jQuery. Отключить Вставку Paste (ctrl + v). Перехват события вставки
Предлагаю свой вариант решения запрета вставки данных из буфер обмена в браузере.
Определим все варианты копипаста:
- ctrl + v (для Windows/Linux)
- cmd + v (для macOS)
Кроме стандартных вариантов необходимо учитывать как «левые» так и «правые» клавиши:
- right ctrl + v
- right cmd + v
Существует ещё одно сочетание горячих клавиш:
- shift + Insert
Вариант с помощью контекстного меню
- правый клик мыши + вставить
Но можно просто отключить само событие вставки, и тогда горячие клавиши нам просто не понадобятся:
- событие «paste»
Два примера, которыми пользуюсь я:
Решение №1. Горчие клавиши
Доступно только для зарегистрированных пользователей.Решение №2. Отключаем событие вставки для поля
Доступно только для зарегистрированных пользователей.Для уверенности, можете использовать оба.
У обоих решений есть свои недостатки.
- Отключение в браузере обработки скриптов
- Не отключают вставку с помощью «экранной клавиатуры»
- Необходимо подключение библиотеки jQuery
- Работает во многих браузерах, но не во всех!
Но у первого решения есть «фитча», скрипт можно обойти, если последовательно нажать ctrl + shift, отпустить -shift, нажать V. Такая последовательность сработает, можно использовать её в собственных целях при необходимости.
Второй вариант полностью отключает вставку в поле. Работает в основных современных браузерах, кроме IE8. Проверял в Opera, Safari, Chrome