그러냐

우클릭 완벽차단 스크립트 본문

javascript

우클릭 완벽차단 스크립트

관절분리 2016. 1. 27. 18:26
반응형

Daum에서 쓰고 있는 우클릭 스크립트입니다.
 
아직까지 요거 뚤리는것은 못본것 같아요..
 
<script type="text/javascript">//<![CDATA[
(function(){
 var cancel=function(e){
  if (window.event) {
   window.event.cancelBubble = true;
   window.event.returnValue = false;
  }
  if (e && e.stopPropagation && e.preventDefault) {
   e.stopPropagation();
   e.preventDefault();
  }
  return false;
 };
 var block=function(e){
  e = e || window.event;
  var t=e.srcElement || e.target;
  var tag=t.tagName;
  if (e && tag==='HTML' || tag==='INPUT' || tag==='TEXTAREA' || tag==='BUTTON' || tag==='SELECT' || tag==='OPTION' || tag==='EMBED' || tag==='OBJECT') { return; }
  if (e.type==='keydown' || e.type=='keyup') {
   // keyboard event : only block ctrl-A, ctrl-a, ctrl-C, ctrl-c, meta-A, meta-a, meta-C, meta-c
   if ((e.ctrlKey || e.metaKey) && (e.keyCode == 65 || e.keyCode == 97 || e.keyCode == 67 || e.keyCode == 99)) { return cancel(e); }
  } else if(e.type == "contextmenu"){
   alert('무단복사를 막기 위해 마우스 드래그 금지가 설정되어 있습니다');
   return cancel(e);
  } else {
   return cancel(e);
  }
 }
 var addEvent = function(el, type, fn){
     if (window.addEventListener) {
         el.addEventListener(type, fn, false);
     }
     else if (window.attachEvent) {
         el.attachEvent('on' + type, fn);
     }
     else {
         el['on' + type] = fn;
     }
 }
 var addBlockEvent = function(){
  addEvent(document.body,'keydown',block);
  addEvent(document.body,'keyup',block);
  addEvent(document.body,'mouseup',block);
  addEvent(document.body,'mousedown',block);
  addEvent(document.body,'dragstart',block);
  addEvent(document.body,'selectstart',block);
  addEvent(document.body,'copy',block);
  addEvent(document.body,'contextmenu', block);
 }
 addEvent(window,'load',addBlockEvent);
})();
//]]>
</script>
 



출처 : http://www.technote.co.kr/php/technote1/board.php?board=study&page=1&command=body&no=168&no=167

 

반응형