Там еще один способ сделать это: onpaste
, oncopy
и oncut
события могут быть зарегистрированы и отменены в IE, Firefox, Chrome, Safari (с некоторыми проблемами несовершеннолетних), единственный крупный браузер , который не позволяет отменить эти события является Opera.
Как вы можете видеть в моем другом ответе, перехват Ctrl+ vи Ctrl+ cсопровождается множеством побочных эффектов, но он по-прежнему не мешает пользователям вставлять с помощью Edit
меню Firefox и т. Д.
function disable_cutcopypaste(e) {
var fn = function(evt) {
// IE-specific lines
evt = evt||window.event
evt.returnValue = false
// Other browser support
if (evt.preventDefault)
evt.preventDefault()
return false
}
e.onbeforepaste = e.onbeforecopy = e.onbeforecut = fn
e.onpaste = e.oncopy = e.oncut = fn
}
Safari по-прежнему имеет некоторые незначительные проблемы с этим методом (он очищает буфер обмена вместо вырезания / копирования при предотвращении дефолта), но эта ошибка, похоже, исправлена в Chrome.
См. Также: http://www.quirksmode.org/dom/events/cutcopypaste.html и соответствующую тестовую страницу http://www.quirksmode.org/dom/events/tests/cutcopypaste.html для получения дополнительной информации.