JavaScript를 사용하지 않고 웹 페이지를 마우스 오른쪽 버튼으로 클릭하지 않도록 설정할 수 있습니까? 대부분의 브라우저에서 사용자가 자바 스크립트를 비활성화 할 수 있기 때문에이 질문을합니다.
그렇지 않은 경우 JavaScript를 사용하여 오른쪽 클릭을 비활성화하려면 어떻게합니까?
JavaScript를 사용하지 않고 웹 페이지를 마우스 오른쪽 버튼으로 클릭하지 않도록 설정할 수 있습니까? 대부분의 브라우저에서 사용자가 자바 스크립트를 비활성화 할 수 있기 때문에이 질문을합니다.
그렇지 않은 경우 JavaScript를 사용하여 오른쪽 클릭을 비활성화하려면 어떻게합니까?
답변:
"contextmenu"이벤트에 대한 이벤트 리스너를 추가하고 preventDefault()
메소드를 호출하여 JavaScript로이를 수행 할 수 있습니다 .
document.addEventListener('contextmenu', event => event.preventDefault());
그것은 말하지 마십시오 : 그것을하지 마십시오.
왜? 성가신 사용자 외에는 아무것도 달성하지 못하기 때문입니다. 또한 많은 브라우저에는 오른쪽 클릭 (컨텍스트) 메뉴를 비활성화 할 수 없도록하는 보안 옵션이 있습니다.
왜 원하는지 잘 모르겠습니다. 그런 식으로 소스 코드 나 이미지를 보호 할 수 있다고 잘못 생각한 경우 다시 생각하십시오. 할 수 없습니다.
oncontextmenu="return false"
몸이 아닌 다른 물건을 사용 하는 것은 예를 들어 캔버스에서 의미가있을 수 있습니다.
하지마
하지 마십시오.
어떤 작업을 수행하더라도 사용자가 웹 사이트의 모든 데이터에 완전히 액세스하지 못하게 할 수는 없습니다. 브라우저에서 Javascript를 끄거나 NoScript와 같은 플러그인을 사용하여 코딩하는 모든 Javascript를 무례하게 렌더링 할 수 있습니다. 또한 사용자가 사이트에 대해 단순히 "소스보기"또는 "페이지 정보보기"(또는 wget 사용) 기능을 비활성화 할 수있는 방법이 없습니다.
노력할 가치가 없습니다. 실제로 작동하지 않습니다. 그것은 당신의 사이트를 사용자에게 적대적으로 만들 것입니다. 그들은 이것을 알아 차리고 방문을 멈출 것입니다. 이 작업에는 아무런 이점이 없으며, 노력 낭비와 트래픽 손실 만 발생합니다.
하지마
업데이트 : 이 작은 주제는 시간이 지남에 따라 논쟁의 여지가있는 것으로 보입니다. 그럼에도 불구하고, 나는이 질문에 대한 답을 기다립니다. 때로는 정답이 문자 그대로의 응답이 아닌 조언입니다.
사용자 정의 상황에 맞는 메뉴 를 만드는 방법을 찾기 위해이 질문을 우연히 본 사람들 은 다음과 같은 다른 곳을 찾아야합니다.
<body oncontextmenu="return false;">
원래 질문은 사용자가 JavaScript를 비활성화 할 수 있다는 점에서 마우스 오른쪽 버튼을 중지하는 방법에 관한 것이 었습니다 .
예를 들어 HTML5 게임에서 마우스 오른쪽 버튼을 클릭하는 것과 같습니다. 위의 인라인 코드로 수행 할 수 있거나 조금 더 좋은 것은 다음과 같습니다.
document.addEventListener("contextmenu", function(e){
e.preventDefault();
}, false);
당신이 게임을하는 경우에, 다음 오른쪽 클릭 버튼을 발사 기억 하려면 contextmenu 이벤트를 -뿐만 아니라 일반 화재 mousedown을 하고 와 mouseUp 도 이벤트를. 당신은 이벤트의 점검 할 필요가 그래서 있는 권리 이벤트를 발사한다 (=== 3) 마우스 버튼을가 (이 === 2) 중간 왼쪽 (=== 1)이었다 있는지 확인하기 위해 속성을, 또는.
jQuery의 예제는 다음과 같습니다. 마우스 오른쪽 버튼을 누르면 mousedown 이벤트, contextmenu 이벤트 및 mouseup 이벤트의 세 가지 이벤트가 발생합니다.
// With jQuery
$(document).on({
"contextmenu": function(e) {
console.log("ctx menu button:", e.which);
// Stop the context menu
e.preventDefault();
},
"mousedown": function(e) {
console.log("normal mouse down:", e.which);
},
"mouseup": function(e) {
console.log("normal mouse up:", e.which);
}
});
따라서 게임에서 왼쪽 및 오른쪽 마우스 버튼을 사용하는 경우 마우스 처리기에서 일부 조건부 논리를 수행해야합니다.
dom.event.contextmenu.enabled
Firefox에서 활성화 한 경우 mousedown
및 mouseup
이벤트 가 활성화 contextmenu
되지 않더라도 계속 발생 합니까?
마우스 오른쪽 버튼을 클릭하려고 할 때마다 사용자에게 메시지를 알리는 것에 신경 쓰지 않으면 본문 태그에 추가하십시오.
<body oncontextmenu="return false;">
마우스 오른쪽 버튼뿐만 아니라 키보드에서도 상황에 맞는 메뉴에 대한 모든 액세스를 차단합니다.
그러나 다른 답변에서 언급했듯이 실제로 마우스 오른쪽 버튼 클릭 비활성화 프로그램을 추가하는 것은 의미가 없습니다. 기본 브라우저 지식이있는 사람이라면 누구나 소스를보고 필요한 정보를 추출 할 수 있습니다.
jquery 팬이라면 이것을 사용하십시오.
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
this
이벤트가 ready 이벤트 내에서 사용되는 이유는 무엇 입니까? 왜 bind
대신에 사용 on
합니까?
첫째, 클라이언트 측 기능을 사용하지 않으면이 작업을 수행 할 수 없습니다. 여기에서 자바 스크립트가 실행됩니다.
둘째, 최종 사용자가 사이트에서 소비 할 수있는 것을 제어하려는 경우 해당 정보를 표시하는 방법을 다시 생각해야합니다. 이미지에는 브라우저 없이도 HTTP를 통해 가져올 수있는 공개 URL이 있습니다.
인증은 누가 어떤 리소스에 액세스 할 수 있는지 제어 할 수 있습니다.
이미지에 포함 된 워터 마킹은 이미지가 특정 개인 / 회사에서 온 것임을 증명할 수 있습니다.
하루가 끝나면 리소스 관리는 실제로 사용자 / 게스트 관리입니다.
인터넷의 첫 번째 규칙, 만약 당신이 그것을 원하지 않는다면 공개하지 마십시오!
인터넷의 두 번째 규칙은 인터넷을 원하지 않는다면 인터넷에 두지 마십시오!
대부분의 사람들이 말했듯이 사람들이 이미지를 다운로드하지 못하도록 막는 것이 목표라면 오른쪽 클릭을 사용 중지하면 거의 효과가 없습니다.
이미지를 보호하려고한다고 가정하면 대체 방법은 다음과 같습니다.
사용자는 플래시 플레이어를 사용하여 다운로드 할 수 없지만 쉽게 화면을 캡처 할 수 있습니다.
좀 더 어색하게하려면 이미지를 투명한 이미지가 포함 된 div의 배경으로 만듭니다.
<div style="background-image: url(YourImage.jpg);">
<img src="transparent.gif"/>
</div>
이미지의 우연한 도난을 방지하기에 충분하지만 (샘플은 아래 참조) 이러한 모든 기술과 마찬가지로 html에 대한 기본적인 이해로이기는 것은 쉽지 않습니다.
Javascript를 사용하지 않으면 원하는 것을 수행 할 수 없습니다. 사용하기로 선택한 다른 기술은 서버 측에서 웹 페이지를 작성하여 브라우저로 보낼 수 있도록 도와줍니다.
좋은 솔루션은 없으며 Javascript가 없으면 솔루션 기간이 없습니다.
사용자가 단순히 이미지를 저장하지 못하도록하는 것이 목표라면 클릭 한 대상이 이미지인지 확인하고이 경우 오른쪽 클릭 만 비활성화 할 수 있습니다. 따라서 오른쪽 클릭을 다른 용도로 사용할 수 있습니다. 위 코드에서 가져온 것 :
document.addEventListener("contextmenu", function(e){
if (e.target.nodeName === "IMG") {
e.preventDefault();
}
}, false);
이것은 이미지를 저장하는 가장 쉬운 방법을 없애는 것이지만 여전히 가능합니다.
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.4.4.min.js'></script>
<script type='text/javascript'>//<![CDATA[
$(function(){
$('img').bind('contextmenu', function(e){
return false;
});
});//]]>
</script>
</head>
<body>
<img src="http://www.winergyinc.com/wp-content/uploads/2010/12/ajax.jpg"/>
</body>
이 코드를 <head>
페이지 의 태그에 넣으십시오 .
<script type="text/javascript">
function disableselect(e){
return false
}
function reEnable(){
return true
}
//if IE4+
document.onselectstart=new Function ("return false")
document.oncontextmenu=new Function ("return false")
//if NS6
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}
</script>
자바 스크립트가 활성화 된 경우에만 전체 웹 페이지를 마우스 오른쪽 버튼으로 클릭 할 수 없습니다.
이 코드를 사용하여 모든 웹 페이지에서 마우스 오른쪽 버튼을 클릭하지 못했습니다. 이 코드를 사용할 수 있습니다
jQuery(document).ready(function(){
jQuery(function() {
jQuery(this).bind("contextmenu", function(event) {
event.preventDefault();
alert('Right click disable in this site!!')
});
});
});
<html>
<head>
<title>Right click disable in web page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
You write your own code
</body>
</html>
이 시도
<script language=JavaScript>
//Disable right mouse click Script
var message="Function Disabled!";
function clickIE4(){
if (event.button==2){
alert(message);
return false;
}
}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
alert(message);
return false;
}
}
}
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}
document.oncontextmenu=new Function("alert(message);return false")
</script>
웹 페이지에서 마우스 오른쪽 버튼을 클릭하지 않는 것은 간단합니다. 이 작업을 수행 할 JavaScript 코드는 몇 줄뿐입니다. 아래는 JavaScript 코드입니다.
$("html").on("contextmenu",function(e){
return false;
});
위의 코드에서 태그를 선택했습니다. 세 줄의 코드 만 추가하면 웹 페이지를 마우스 오른쪽 버튼으로 클릭 할 수 없게됩니다.
$(document).ready(function () {
document.oncontextmenu = document.body.oncontextmenu = function () { return false; }
});
나는 늦었다는 것을 알고 있지만, 내가 제공 할 답변에 대한 몇 가지 가정과 설명을 만들고 싶다.
Javascript를 사용하지 않고 웹 페이지를 마우스 오른쪽 버튼으로 클릭하지 않도록 설정할 수 있습니까?
예, JavaScript를 사용하면 발생하는 모든 이벤트를 비활성화 할 수 있으며 대부분 javaScript를 통해서만 수행 할 수 있습니다. 방법은 다음과 같습니다.
작동하는 하드웨어
키 코드에 대해 배울 수있는 웹 사이트 또는 어딘가에 있습니다. 당신이 필요하기 때문에.
이제 Enter 키 누르기를 차단하고 싶다고 가정 해 봅시다. 코드는 다음과 같습니다.
function prevententer () {
if(event.keyCode == 13) {
return false;
}
}
마우스 오른쪽 버튼을 클릭하려면 다음을 사용하십시오.
event.button == 2
대신에 event.keyCode
. 그리고 당신은 그것을 차단합니다.
대부분의 브라우저에서 사용자가 Javascript로 비활성화 할 수 있기 때문에 이것을 묻고 싶습니다.
당신이 옳습니다. 브라우저를 사용하면 JavaScript
자바 스크립트가 모든 작업을 수행 할 수 있습니다. 아무것도 설정할 필요가 없으며 헤드에 스크립트 속성 만 있으면됩니다.
그것에 대한 주요 대답과 빠른 대답은 사용자가 그것을 좋아하지 않을 것 입니다. 누구나 자유가 필요합니다. 아무도 막히거나 막히기를 원치 않습니다. 몇 분 전에 사이트에 있었기 때문에 오른쪽 클릭을 막았는데 그 이유를 느꼈습니다. 소스 코드를 보호해야합니까? 그런 다음 여기 ctrl+shift+J
를 열었고 Console
이제 HTML-code
탭으로 이동할 수 있습니다 . 가서 멈춰 이렇게하면 앱에 보안 계층이 추가되지 않습니다.
마우스 오른쪽 버튼에는 복사, 붙여 넣기, Google에서 '텍스트'(Chrome) 등을 검색하는 등 많은 사용자 메뉴가 있습니다. 따라서 사용자는 많은 키보드 단축키를 기억하는 대신 쉽게 액세스 할 수 있기를 원합니다. 누구나 컨텍스트를 복사하거나 이미지를 저장하거나 원하는 작업을 수행 할 수 있습니다.
브라우저는 마우스 탐색을 사용합니다. Opera 와 같은 일부 브라우저 는 마우스 탐색을 사용하므로이를 비활성화하면 사용자가 사용자 인터페이스와 스크립트를 싫어하게됩니다.
이것이 기본이었습니다. 소스 코드 hehehe를 저장하는 방법에 대해 좀 더 쓰려고했지만 귀하의 질문에 대한 답이 되겠습니다.
키 및 마우스 버튼 코드 :
http://www.w3schools.com/jsref/event_button.asp
https://developer.mozilla.org/en-US/docs/Web/API/event.button (사용자들도 높이 평가할 것입니다).
마우스 오른쪽 버튼을 클릭하지 않으시겠습니까?
중요 사항 : 브라우저 와 OS 에 따라 이러한 예방 여부가 결정됩니다!
해야합니까 ? 없음 . 그것은 사용자를 방해하지는 않지만, 단지 그를 귀찮게 할 것입니다.
사용할 수 있습니까? 예 . 예 : 팝업 메뉴를 사용자 정의하려는 일부 웹 앱, 실수로 마우스 오른쪽 버튼을 클릭 할 때 사용자가 화가 날 수있는 게임 내 및 기타 경우.
우분투 16.04에서 크롬 (V65)은 = 당신은 CAN 마우스 오른쪽 단추로 클릭하지 않도록 설정합니다.
Mac OS 10.11의 Chrome (v65) = 오른쪽 클릭을 비활성화 할 수 없습니다 .
Windows 7의 Chrome (v65) = 오른쪽 클릭을 비활성화 할 수 없습니다 .
파이어 폭스 맥 OS 10.11에서 (V41)은 = 당신은 CAN 마우스 오른쪽 단추로 클릭하지 않도록 설정합니다.
Windows 7의 파이어 폭스 (V43)은 = 당신은 CAN 마우스 오른쪽 단추로 클릭하지 않도록 설정합니다.
// Vanilla JS way
document.addEventListener('contextmenu', function(e){
e.preventDefault();
});
// jQuery way
$(document).bind('contextmenu', function(e) {
e.preventDefault();
});
고려해야 할 몇 가지 사항 :
크롬 저장소에 '오른쪽 클릭 사용'과 같은 브라우저 플러그인이 존재하기 때문에이 문제를 해결할 수 없습니다. 사람들이 문자 그대로 브라우저에서 볼 수 있도록 콘텐츠를 다운로드해야하기 때문에 사람들이 콘텐츠를 다운로드하지 못하게 할 수있는 일은 거의 없습니다. 사람들은 항상 노력하지만 항상 노력합니다.
일반적으로 콘텐츠를 공개해서는 안되는 콘텐츠를 온라인에 올리지 마십시오.
또한, 오른쪽 클릭을 할 수없는 것은 접근성 문제이며 많은 경우 맹인이나 장애인 또는 노인에 대한 불법 차별에 해당합니다. 현지 법률을 확인하십시오. 그러나 미국에서는 시력 문제가있을 수있는 맹인 또는 노인이 법적으로 보호되는 클래스이므로 연방 ADA 형식의 법률에 대해 적극적으로 반대합니다.
따라서이 작업을 수행하고 많은 시간과 노력을 낭비하는 대신이 작업을 귀찮게하지 마십시오. 회사가 소송을 제기하거나 컴플라이언스 감사에 실패 할 수 있습니다.
inspect element 옵션을 비활성화하려면이 코드를 사용해보십시오.
jQuery(document).ready(function() {
function disableSelection(e) {
if (typeof e.onselectstart != "undefined") e.onselectstart = function() {
return false
};
else if (typeof e.style.MozUserSelect != "undefined") e.style.MozUserSelect = "none";
else e.onmousedown = function() {
return false
};
e.style.cursor = "default"
}
window.onload = function() {
disableSelection(document.body)
};
window.addEventListener("keydown", function(e) {
if (e.ctrlKey && (e.which == 65 || e.which == 66 || e.which == 67 || e.which == 70 || e.which == 73 || e.which == 80 || e.which == 83 || e.which == 85 || e.which == 86)) {
e.preventDefault()
}
});
document.keypress = function(e) {
if (e.ctrlKey && (e.which == 65 || e.which == 66 || e.which == 70 || e.which == 67 || e.which == 73 || e.which == 80 || e.which == 83 || e.which == 85 || e.which == 86)) {}
return false
};
document.onkeydown = function(e) {
e = e || window.event;
if (e.keyCode == 123 || e.keyCode == 18) {
return false
}
};
document.oncontextmenu = function(e) {
var t = e || window.event;
var n = t.target || t.srcElement;
if (n.nodeName != "A") return false
};
document.ondragstart = function() {
return false
};
});
에 의해 또한 왼쪽 버튼으로 클릭하고 탭을 비활성화 할 수 있습니다 비활성화 바로 click.You이 기능을 사용하여 checking 1 and 0
해당
document.onmousedown = rightclickD;
function rightclickD(e)
{
e = e||event;
console.log(e);
if (e.button == 2) {
//alert('Right click disabled!!!');
return false; }
}