programing

자바스크립트에서 마우스 오른쪽 단추로 클릭하는 컨텍스트 메뉴를 비활성화하는 방법

mailnote 2023. 10. 13. 22:24
반응형

자바스크립트에서 마우스 오른쪽 단추로 클릭하는 컨텍스트 메뉴를 비활성화하는 방법

'View Source'나 그런 바보 같은 것을 막으려는 것이 아니라 특정 요소에 대한 맞춤형 컨텍스트 메뉴를 만들고 있습니다.

EDIT: 답변: 시도해 본 적이 있습니다.

<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>

우클릭을 시도할 때마다 메시지를 사용자에게 알리는 것을 신경 쓰지 않는다면, 이 메시지를 신체 태그에 추가해 보십시오.

<body oncontextmenu="return false;">

마우스 오른쪽 버튼뿐만 아니라 키보드에서도 상황에 맞는 메뉴에 대한 모든 액세스가 차단됩니다.

그러나 오른쪽 클릭 비활성화를 추가하는 것은 의미가 없습니다.기본적인 브라우저 지식을 가진 누구나 소스를 보고 필요한 정보를 추출할 수 있습니다.

캡처.onContextMenuevent, 그리고 event handler에서 false로 반환합니다.

클릭 이벤트를 캡처하고 어떤 마우스 버튼으로 이벤트를 시작했는지 확인할 수도 있습니다.event.button, 어쨌든 몇몇 브라우저에서는.

사용한 적이 있습니다.

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인 경우, 사용자가 마우스 오른쪽 버튼을 해제하거나 Context Menu 키를 누르거나 해제한 것으로 알고 있습니다.

도움이 되길 바랍니다.

사용자 페이지가 정말로 사용자가 해당 메뉴를 볼 수 없다는 사실에 의존하는 경우 최신 브라우저(예: Firefox)를 통해 사용자가 정말로 비활성화할지 여부를 결정할 수 있습니다.따라서 메뉴가 실제로 비활성화된다는 보장이 전혀 없습니다.

사용자가 비활성화할 수 있기 때문에 컨텍스트 메뉴에 의존할 수 없습니다.대부분의 웹사이트는 방문자를 짜증나게 하기 위해 이 기능을 사용하기를 원합니다.

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

반응형