자체 팝업 HTML 요소를 표시하기 위해 오른쪽 클릭 버튼을 덮어 쓴 웹 페이지를보고 있습니다.
이로 인해 Chrome 개발자 도구를 사용하여 요소를 검사 할 수 없습니다.
Chrome 콘솔에서 삽입하여 오른쪽 클릭을 다시 활성화 할 수있는 JavaScript 스 니펫을 아는 사람이 있습니까?
HTML 요소를 쉽게 검사 할 수 있도록 기존의 '오른쪽 클릭'기능을 중단해도 괜찮습니다.
감사.
자체 팝업 HTML 요소를 표시하기 위해 오른쪽 클릭 버튼을 덮어 쓴 웹 페이지를보고 있습니다.
이로 인해 Chrome 개발자 도구를 사용하여 요소를 검사 할 수 없습니다.
Chrome 콘솔에서 삽입하여 오른쪽 클릭을 다시 활성화 할 수있는 JavaScript 스 니펫을 아는 사람이 있습니까?
HTML 요소를 쉽게 검사 할 수 있도록 기존의 '오른쪽 클릭'기능을 중단해도 괜찮습니다.
감사.
답변:
oncontextmenu
핸들러를 방금 변경 한 경우 (가장 간단한 방법) 다음과 같이 오버라이드를 제거 할 수 있습니다.
window.oncontextmenu = null;
그렇지 않고 개별 요소에 첨부 된 경우 페이지의 모든 요소를 가져온 다음 각 요소에서 핸들러를 제거 할 수 있습니다.
var elements = document.getElementsByTagName("*");
for(var id = 0; id < elements.length; ++id) { elements[id].oncontextmenu = null; }
또는 그러한 스크립트를 끌 수있는 것 같습니다. Chrome의 확장 프로그램 또는 Firefox 의 옵션을 통해 -자바 스크립트 옵션의 고급 상자에서 '컨텍스트 메뉴 비활성화 또는 바꾸기'를 끕니다.
이 책자는 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();
마우스 오른쪽 버튼을 다시 활성화하려면 다음 코드를 사용할 수 있습니다.
document.oncontextmenu = function(){}
바로 가기 키 (Ctrl + Shift + i)를 사용하여 Windows OS의 크롬에서 요소 검사를 열 수 있습니다.
@Chema 솔루션을 기반으로 재설정 pointer-events
및 user-select
. none
이미지 에 대해 로 설정된 경우 마우스 오른쪽 버튼으로 클릭해도 이미지를 보거나 저장할 수있는 옵션이있는 컨텍스트 메뉴가 호출되지 않습니다.
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]); enablePointerEvents(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(); } function enablePointerEvents(el) { if (!el) return; el.style.pointerEvents='auto'; el.style.webkitTouchCallout='default'; el.style.webkitUserSelect='auto'; el.style.MozUserSelect='auto'; el.style.msUserSelect='auto'; el.style.userSelect='auto'; enablePointerEvents(el.parentElement); } enableContextMenu();
Chrome에서 "SETTINGS> PRIVACY> don´t allow JavaScript"를 비활성화하면 오른쪽 클릭 기능이 활성화되고 Firebug Console이 작동 할 수 있습니다. 다른 모든 JavaScript 코드도 비활성화됩니다.
이를 수행하는 올바른 방법은 특정 JavaScript 만 비활성화하는 것입니다. 다음 코드 줄 중 하나를 찾습니다.
방금 이 사이트를 방문했는데 정말 귀찮았어요.
분명히 마우스 클릭을 비활성화하는 몇 가지 방법이 있습니다.
1)
<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
function disableclick(event)
{
if(event.button==2)
{
alert(status);
return false;
}
}
</script>
과
<body oncontextmenu="return false">
...
이 경우 개발 도구에서해야 할 일은 다음과 같습니다.
document.removeEventListener("onmousedown",disableclick);
document.oncontextmenu = function(){}
2)
콘텐츠 래퍼로 플래시 사용-스크린 샷을 찍는 것 외에는 해결책이 없습니다.
삼)
일부 사이트는 오른쪽 클릭-> 이미지를 다른 이름으로 저장하여 이미지 다운로드를 방지하려고합니다.
그래서 그들이하는 일은 다음과 같습니다.
<div style="background-image: url(YourImage.jpg);">
<img src="transparent.gif"/>
</div>
화면의 전체 너비와 높이에 뿌려지는 투명한 이미지입니다. 요소 검사기로 이동하여 div를 찾아 삭제하면됩니다.
제 경우에는 # 1이 트릭을했습니다.
Chrome 개발자 도구 툴바의 맨 왼쪽에는 컨텍스트 메뉴 핸들러와 관계없이 검사 할 항목을 선택할 수있는 버튼이 있습니다. 중앙을 가리키는 화살표가 있는 사각형 처럼 보입니다 .
F12를 누르기 만하면됩니다.
소스로 이동
거기에서 Enable right click 을 찾을 수 있습니다 . 그것을 클릭하십시오.
이 아래에서 web_accessible_resource 를 찾을 수 있습니다 .
이것을 열면 index.js 를 찾을 수 있습니다.
Ctrl + F를 누르고 disabelRightClick을 검색 하십시오 . 거기에서 찾을 수 있습니다
var disableRightClick = false;
이 줄. 이 줄을
var disableRightClick = true;
Ctrl + s를 누르기 만하면됩니다.
!! 끝난. 이제 오른쪽 클릭이 활성화됩니다!