Programming

JavaScript에서 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴를 비활성화하는 방법

procodes 2020. 7. 18. 23:25
반응형

JavaScript에서 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴를 비활성화하는 방법


'소스보기'나 그와 비슷한 것을 막으려는 것이 아니라 특정 요소에 대한 사용자 정의 컨텍스트 메뉴를 만들고 있습니다.편집 : 답변에 대한 답변 : 나는 이것을 시도했다 :

<a id="moo" href=''> </a>

<script type="text/javascript">
    var moo = document.getElementById('moo');

    function handler(event) {
        event = event || window.event;

        if (event.stopPropagation)
            event.stopPropagation();

        event.cancelBubble = true;
        return false;
    }

    moo.innerHTML = 'right-click here';

    moo.onclick = handler;
    moo.onmousedown = handler;
    moo.onmouseup = handler;
</script>

 

onContextMenu

이벤트를 캡처하고 이벤트 핸들러에서 false를 리턴하십시오.

event.button

일부 브라우저 에서는 클릭 이벤트를 캡처하고 이벤트를 발생시킨 마우스 버튼을 확인할 수도 있습니다 .


마우스 오른쪽 버튼을 클릭하려고 할 때마다 사용자에게 메시지를 알리는 데 신경 쓰지 않으면 본문 태그에 추가하십시오.

<body oncontextmenu="return false;">

마우스 오른쪽 버튼뿐만 아니라 키보드에서도 컨텍스트 메뉴에 대한 모든 액세스를 차단합니다.그러나 실제로 오른쪽 클릭 비활성화 프로그램을 추가하는 것은 의미가 없습니다. 기본 브라우저 지식이있는 사람은 누구나 소스를보고 필요한 정보를 추출 할 수 있습니다.


나는 이것을 사용했다 :

document.onkeydown = keyboardDown;
document.onkeyup = keyboardUp;
document.oncontextmenu = function(e){
 var evt = new Object({keyCode:93});
 stopEvent(e);
 keyboardUp(evt);
}
function stopEvent(event){
 if(event.preventDefault != undefined)
  event.preventDefault();
 if(event.stopPropagation != undefined)
  event.stopPropagation();
}
function keyboardDown(e){
 ...
}
function keyboardUp(e){
 ...
}

그런 다음 두 가지 마지막 함수에서 e.keyCode 속성을 잡습니다. e.keyCode == 93 인 경우 사용자가 마우스 오른쪽 버튼을 놓거나 상황에 맞는 메뉴 키를 눌렀다 놓았다는 것을 알고 있습니다.도움이 되길 바랍니다.


사람들이 해당 메뉴를 볼 수 없다는 사실에 페이지가 의존하는 경우 최신 브라우저 (예 : Firefox)를 통해 사용자가 실제로 비활성화할지 여부를 결정할 수 있음을 알아야합니다. 따라서 메뉴가 실제로 비활성화 될 것이라는 보장은 없습니다.


사용자가 컨텍스트 메뉴를 비활성화 할 수 있으므로 컨텍스트 메뉴에 의존 할 수 없습니다. 대부분의 웹 사이트는이 기능을 사용하여 방문자를 성가 시게합니다.

참고URL : https://stackoverflow.com/questions/381795/how-to-disable-right-click-context-menu-in-javascript

반응형