자바 스크립트가 오른쪽 클릭 메뉴를 가로 챌 수 없도록 Chrome을 설정하는 방법


45

자바 스크립트를 통해 마우스 오른쪽 버튼을 가로 채는 웹 사이트를 멸시합니다. 파이어 폭스와 같은 다른 브라우저를 사용하면 사이트 에서이 작업을 차단할 수 있습니다. 크롬에는 그러한 옵션이 있습니까? 아니면 성가신 웹 사이트 디자이너의 자비에 맡길 수 있습니까?

자바 스크립트를 완전히 끄고 싶지 않습니다. Javascript가 마우스 오른쪽 버튼을 인계하지 못하도록 차단하고 싶습니다. Firefox에서는 자바 스크립트가 이와 같은 특정 작업을 수행하지 못하게 할 수 있습니다. Chrome이 작동하는지 확인하려고합니다. 이 시점에서는 그렇지 않다고 가정합니다.

답변:


17

이 Chrome 확장 프로그램을 사용하면 웹 사이트에서 오른쪽 클릭 버튼을 차단할 수 없습니다.

오른쪽 클릭 활성화

https://chrome.google.com/webstore/detail/enable-right-click/hhojmcideegachlhfgfdhailpfhgknjm


이것은 유망 해 보인다!
Peter

4
정말 실망스러운 크롬은 확장 기능이 필요하지만 문제를 해결합니다. 답변을 투표했지만 더 나은 해결책을 찾고 있습니다.
JM Becker

이것은 매력처럼 작동했습니다. 내 자신의 확장을 구축 할 준비를하고있었습니다. 연구를위한 예.
까지

7
@ 칼 모리슨 : 나는 당신이 내 비판을 오해했을지도 모른다고 생각합니다. 오른쪽 클릭 메뉴를 사용하지 않도록 크롬을 비판하지 않았습니다. 크롬은 자바 스크립트 기능을 선택적으로 비활성화하는 방법을 제공하지 않는다고 걱정했습니다. 또한 JavaScript를 비활성화하면 많은 사이트가 작동하지 않게됩니다. Firefox는 "컨텍스트 메뉴 비활성화 또는 바꾸기"Javascript 옵션을 제공합니다.
JM Becker

1
@Alexander, 작동하지 않습니다. Chrome 브라우저를 사용하여 Google 문서에서 테스트했습니다.
Pacerier

14

보도 F12에 밖으로 탐색 구글 크롬 개발자 도구를 가지고 Console탭 및 명령 아래 실행 :

document.oncontextmenu=null;

컨텍스트 메뉴의 대부분을 다시 가져와야합니다.

Firefox에서도 작동합니다.

물론 Firefox에서는 Shift+ 오른쪽 클릭으로 JS 컨텍스트 메뉴를 무시할 수 있습니다.


7
작동하지 않습니다. Chrome 브라우저를 사용하여 Google 문서에서 테스트했습니다.
Pacerier

@Pacerier Google이 Docs에서 어떤 부두 마법을 사용했는지 알지 못합니다 .oncontextmenu를 사용하지 않으므로 솔루션이 작동하지 않습니다. 그러나 언급 한 다른 방법은 Chrome에서도 작동해야합니다 .Shift + 오른쪽 클릭을 사용하여 원래 상황에 맞는 메뉴를 불러옵니다.
시 B.

나를 위해 작동하지 않습니다.
벤 휠러

1
"작동하지 않음"의견에 대응하기 위해-모든 웹 사이트에서 작동하지는 않지만 @ shi-b의 답변은 작동합니다 ...
Robert Swift

컨텍스트 메뉴 이벤트 리스너가 연결된 dom 요소에 따라 다릅니다. 종종 문서화되지만 모든 요소에 첨부 할 수 있습니다.
Scott Christopherson

4

About.com 에서 수용 가능한 솔루션을 찾았습니다 . 작은 북마크입니다.이 성가신 JS를 강제로 비활성화하려면 본질적으로 클릭해야합니다. 그러나 많은 사이트에서 JS를 마우스 오른쪽 버튼으로 클릭하여 제어해야하기 때문에 Firefox 스타일 옵션보다 낫습니다. 예를 들어 Google 문서 등

적어도 메모리에 추가 확장을 저장하는 리소스를 낭비 할 필요가 없습니다. 작업 관리자를 사용하여 Chrome에서 확장 프로그램을 저장하는 방법을 볼 수 있습니다.


코드는 javascript:void(document.onmousedown=null);void(document.onclick=null);void(document.oncontextmenu=null)입니다. 불행히도 Google Chrome의 Netflix 에서는 작동하지 않습니다 . 그러나 chrome.google.com/webstore/detail/allow-right-click/… 작동했습니다 .
Aaron Thoma

2

NotScripts를 사용합니다

편집하다:

나는 한 ScriptNo로 전환 보다 세분화 된 제어 할 수 있습니다,


1
이를 통해 페이지에서 수행 할 수있는 작업과 수행 할 수없는 작업을 제어 할 수 있습니까?
피터

그것은 도메인별로 js를 차단합니다. 각 도메인은 사용자가 선택할 수 있습니다. 오른쪽 클릭을 납치하여 의미하는 바에 따라 다릅니다. 컨텍스트 메뉴가 변경된다는 의미입니까?
Moab

3
예. 마우스 오른쪽 버튼에서 오는 마우스 클릭 이벤트를 사용하여 자바 스크립트를 중지하는 기능을 원합니다.
피터

다른 솔루션은 그라 타가 아니지만 위의 큰 단계는 JS를 완전히 비활성화했습니다. FireFox noscript를 사용했지만 여전히 사용할 수는 없지만 Chrome 스크립트는 실제로 더 나쁩니다. 둘 다 수동 개입이 필요하며 기본적으로 도메인마다 JS를 완전히 활성화 / 비활성화합니다. 세분화 된 특정 JS DOM 비활성화 문제를 해결하려면 둘 다 충분하지 않습니다. 치아의 피부로 인해 내 공감대를 피하기에 충분합니다.
JM Becker

@TechZilla 위의 편집 내용 확인
Moab

0

이 소책자는 2019 년 8 월 현재 Google 사이트 / YouTube에서 작동합니다 (Chrome 및 Firefox에서 테스트).

javascript: function enableContextMenu(aggressive = false) { void(document.ondragstart=null); void(document.onselectstart=null); void(document.onclick=null); void(document.onmousedown=null); void(document.onmouseup=null); void(document.body.oncontextmenu=null); enableRightClickLight(document); if (aggressive) { enableRightClick(document); removeContextMenuOnAll("body"); removeContextMenuOnAll("img"); removeContextMenuOnAll("td"); } } function removeContextMenuOnAll(tagName) { var elements = document.getElementsByTagName(tagName); for (var i = 0; i < elements.length; i++) { enableRightClick(elements[i]); } } function enableRightClickLight(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); } function enableRightClick(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); el.addEventListener("dragstart", bringBackDefault, true); el.addEventListener("selectstart", bringBackDefault, true); el.addEventListener("click", bringBackDefault, true); el.addEventListener("mousedown", bringBackDefault, true); el.addEventListener("mouseup", bringBackDefault, true); } function restoreRightClick(el) { el || (el = document); el.removeEventListener("contextmenu", bringBackDefault, true); el.removeEventListener("dragstart", bringBackDefault, true); el.removeEventListener("selectstart", bringBackDefault, true); el.removeEventListener("click", bringBackDefault, true); el.removeEventListener("mousedown", bringBackDefault, true); el.removeEventListener("mouseup", bringBackDefault, true); } function bringBackDefault(event) { event.returnValue = true; (typeof event.stopPropagation === 'function') && event.stopPropagation(); (typeof event.cancelBubble === 'function') && event.cancelBubble(); } enableContextMenu();

페 스키어 사이트의 경우 공격적인 설정 / 전달을 true로 설정하십시오 (대부분의 이벤트 핸들러가 비활성화되어 페이지와의 상호 작용이 비활성화됩니다).

javascript: function enableContextMenu(aggressive = true) { void(document.ondragstart=null); void(document.onselectstart=null); void(document.onclick=null); void(document.onmousedown=null); void(document.onmouseup=null); void(document.body.oncontextmenu=null); enableRightClickLight(document); if (aggressive) { enableRightClick(document); removeContextMenuOnAll("body"); removeContextMenuOnAll("img"); removeContextMenuOnAll("td"); } } function removeContextMenuOnAll(tagName) { var elements = document.getElementsByTagName(tagName); for (var i = 0; i < elements.length; i++) { enableRightClick(elements[i]); } } function enableRightClickLight(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); } function enableRightClick(el) { el || (el = document); el.addEventListener("contextmenu", bringBackDefault, true); el.addEventListener("dragstart", bringBackDefault, true); el.addEventListener("selectstart", bringBackDefault, true); el.addEventListener("click", bringBackDefault, true); el.addEventListener("mousedown", bringBackDefault, true); el.addEventListener("mouseup", bringBackDefault, true); } function restoreRightClick(el) { el || (el = document); el.removeEventListener("contextmenu", bringBackDefault, true); el.removeEventListener("dragstart", bringBackDefault, true); el.removeEventListener("selectstart", bringBackDefault, true); el.removeEventListener("click", bringBackDefault, true); el.removeEventListener("mousedown", bringBackDefault, true); el.removeEventListener("mouseup", bringBackDefault, true); } function bringBackDefault(event) { event.returnValue = true; (typeof event.stopPropagation === 'function') && event.stopPropagation(); (typeof event.cancelBubble === 'function') && event.cancelBubble(); } enableContextMenu();

-1

Google 크롬의 모든 웹 사이트에서 자바 스크립트를 쉽게 활성화 / 비활성화하거나 허용 / 차단할 수 있습니다. 사이트 URL 앞에 종이 사인을 클릭하십시오. 퍼미션 아래에 javescript가 표시되고 아래쪽 화살표를 클릭하면 메뉴가 표시되며 "항상이 사이트의 차단"을 선택하고 웹 페이지를 새로 고침하여 변경 사항을 적용하십시오.

이것이 도움이되기를 바랍니다.

이미지 링크입니다.

https://www.facebook.com/photo.php?fbid=10201389704683447&l=5294c0075e


2
모든 자바 스크립트를 차단하려고하지 않습니다. 마우스 오른쪽 클릭을 가로채는 자바 스크립트 만 차단하고 싶습니다. 일부 브라우저는 해당 옵션을 제공합니다.
피터

-1

이 크롬 확장 프로그램 RightToCopy를 찾았습니다.

사이트를 마우스 오른쪽 단추로 클릭하고 텍스트 기능을 선택하고 복사 할 수 있습니다.


-1

Shi B. 솔루션을 기반으로 Chrome에서 문제를 해결하는 신뢰할 수있는 방법을 얻었습니다.

(1) Chrome 용 사용자 정의 자바 스크립트 웹 플러그인을 가져옵니다.

(2) document.oncontextmenu=null;플러그인 콘솔에 붙여 넣 습니다.

매력처럼 작동합니다.


(이것은 오래되었다는 것을 알고 있지만 너무 궁금합니다.) 왜 세상에서 기본 콘솔 대신에 이것을 사용하겠습니까? 나에게 그것은 정확히 똑같이 달성하기가 더 어려운 방법처럼 보입니다.
Dennis Krøger

1
제 경우에는 같은 웹 사이트 (Dropbox Paper)로 돌아 왔습니다. 따라서 하나의 웹 사이트에서 해당 스크립트가 자동으로 실행되었습니다. 다행히도 회사는이를 수정했습니다
Karolis

document.oncontextmenu=null;Chrome의 sheets.google.com에서는 작동하지 않습니다.
xaxxon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.