Там ще один спосіб зробити це: 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 для отримання додаткової інформації.