ctrl+c, ctrl+v ,shift+insert, contextmenu, mouse right prevent
간혹 작업간에 복사 붙여넣기 기능을 막아달라는 요청이 들어올때가 있다.
매번 찾아보기 귀찮아서 정리하도록 하겠다.
붙여넣기 방법?
- ctrl +c, v
- shift + insert
- contextmenu 버튼을 이용
- 마우스 우클릭 이용
구현
마우스의 경우는 mousedown 이벤트를 이용하여 제어를 할 수 있다.
keyboard도 keydown 이벤트를 이용하여 키보드의 ascii code값을 전달 받으면 되는데, IE의 경우는 keyCode라는 property를 이용하여 값을 전달하고 나머지는 which라는 프로퍼티를 사용한다.
코드
<script> //jquery 사용$(function(){
var failMessage = function(){
return alert("붙여넣기 기능은 사용하실 수 없습니다."), false;
},
preventEvent = {
"keydown" : function(e) {
var keycode = function(e){
return ('which' in e ? e.which : e.keyCode)
}(e),
ctrl_cv = (e.ctrlKey && (keycode == 118 || keycode == 86)),
shift_insert = (e.shiftKey && keycode == 45);
if (ctrl_cv || shift_insert){
return failMessage();
}
}
,"mousedown" : function(e) {
var rightClick = (e.button == 2);
if(rightClick){
return failMessage();
}
}
,"contextmenu" : function(e) {
return failMessage();
}
};$(document).bind(preventEvent);}());</script>