오늘 알아볼 내용은 특별한 요소 및 텍스트를 드래그 하여 선택하는 것을 막기위한 방법에 대하여 자세히 알아보도록 한다. 어떻게 하면 방문자의 영역 복사를 막을 수 있을까? 먼저 이런 경우가 언제 필요할까?

이유야 많을 수 있겠으나 자신의 콘텐츠가 다른 사람에게 손쉽게 사용되는 것을 막기 위함도 하나의 이유로 볼 수 있을 것이다. 물론 소스보기 등의 방법을 막을 수는 없지만 간단한 방법을 사용해 복사하는 등의 방법은 못하도록 하는 최소한의 예방책이라 할 수 있을 것이다. 그럼 아래는 이를 수행하기 위한 코드를 알아보자.


! 텍스트 및 영역 드래그, 복사 막는 소스코드 보기
아래의 자바스크립트는 특정 요소 위에서 마우스를 올려 어떤 행동을 할 경우 이를 막는 코드이다. 아래 코드를 보자.

<script>
$(선택한 요소).on('mousedown mousemove touchstart', function(event) {
   event.preventDefault();
});
</script>

위 코드는 특정 요소에서 mousedown 또는 mousemove 그리고 touchstart 등의 이벤트가 발생할 경우 이를 막는 함수를 동작시킨다. 여기서 실행하는 preventDefault()는 발생한 이벤트를 실행시키지 않고 중지하는 역할을 한다.

이 코드에는 이벤트 touchstart 역시 추가되어 있는데 이는 모바일 및 태블릿 등에서도 이 코드가 동작하기 위함이다. 만약 웹사이트 시작시 이를 함수로 등록시켜 실행하려면? 아래와 같이 사용하면 된다.

<script>
var preventStart = function() {
   $('body').on('mousedown mousemove touchstart', function(event) {
      event.preventDefault();
   });
}

$(function() {
   preventStart();
});
</script>

body 태그안에 있는 모든 태그들은 위 함수에 영향을 받게 될 것이다. 제이쿼리를 사용하여 영역 및 텍스트 복사를 막는 방법을 알아보았다!