(자바스크립트) 특정 input 과 textarea 에서만 드래그가 먹도록 설정하기 JavaScript_VBScript

코드 먼저-------------------------------

<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">


<script language="javascript">
function texteventStart() {
  document.body.ondragstart = "";
  document.body.onselectstart = "";
  document.body.oncontextmenu = "";
}
function texteventStop() {
  document.body.ondragstart = new Function ('return false');
  document.body.onselectstart = new Function ('return false');
  document.body.oncontextmenu = new Function ('return false');
}
</script>


<input type="text" id="n11" name="n11" value="" style="width:250px;" onfocus="texteventStart()" onblur="texteventStop()">

<textarea id="list1" name="list1" style="width:350px;height:200px;font-size:9pt;overflow-x:auto;" readonly hidefocus onfocus="texteventStart()" onblur="texteventStop()"></textarea>

------------------------------------

웹페이지를 작성하다보면, 페이지를 드래그하여 선택하지 못하도록 일부러 막아두는 경우가 있다.
그런데 이렇게 막아두면 실제 사용자는 사용 중에 굉장히 불편한 경우가 많이 발생한다.
그래서 프로그래머가 미리 설정한 input 박스나 textarea 박스에서만 드래그(drag)와 셀렉트(select) 등의 기능이 동작하도록 유동적으로 태그를 변경하는 스크립트를 작성했다.
기존에 누군가가 작성해 놓은 소스를 참조했는데, 에러가 나고 정상적으로 작동하지 않아서 테스트를 통해 잘 작동하는 코드로 변경하였다.

간단한 설명.
body 태그에서 oncontextmenu="return falseonselectstart="return falseondragstart="return false" 를 선언하여, 이 웹페이지에서는 드래그나 셀레트 등의 기능을 사용할 수 없다.
그러나 웹페이지에 포함된 input 과 textarea 객체에 포커스가 올라가면(onfocs) body 에 설정했던 잠금장치가 일시적으로 해제된다.
그러나 다시 포커스가 이 객체들에서 빠져나가면(onblur) body 에 원래 설정했던 잠금장치를 다시 입력하여 원래대로 잠기도록 하는 동작 방식임.

더 쉽게 설명하면.
마우스로 input 과 textarea 에서 드래그 할 때에는 일시적으로 잠금을 풀어주고, 다른 곳에서 마우스를 움직이면 잠그는 방식.

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


통계 위젯 (화이트)

10761337
7881
10222488

google_myblogSearch_side

▷검색어

Flag Counter style2