如何重新启用右键单击,以便我可以检查Chrome中的HTML元素?


81

我正在查看一个覆盖了右键单击按钮的网页,以便显示其自己的弹出HTML元素。

这使我无法使用Chrome开发者工具检查元素。

有人知道我可以从Chrome控制台注入以重新启用右键单击的JavaScript代码段吗?

我可以打破现有的“右键单击”功能,以便能够轻松检查HTML元素。

谢谢。


如果您将firebug用于firefox,您仍然可以使用鼠标突出显示元素...我知道这意味着使用Firefox,但可能会有所帮助。
2014年

Chrome上提供了@Teemu Firebug Lite。虽然不确定为什么需要在默认工具上使用它。
James Donnelly 2014年

1
@JoshSmickus这个问题用[google-chrome]标记,OP还询问如何使用Chrome开发者工具检查元素。
Teemu 2014年

Answers:


69

如果他们刚刚更改了oncontextmenu处理程序(这是最简单的方法),则可以这样删除它们的覆盖:

window.oncontextmenu = null;

否则,如果将它附加到各个元素,则可以获取页面的所有元素,然后删除每个元素上的处理程序:

var elements = document.getElementsByTagName("*");
for(var id = 0; id < elements.length; ++id) { elements[id].oncontextmenu = null; }

或者,您似乎可以关闭此类脚本;通过Chrome中的扩展程序Firefox中的选项-在javascript选项的高级框中,关闭“禁用或替换上下文菜单”。


3
我认为您在正确的道路上...但是我只是对其进行了测试,因此无法正常工作...
2014年

1
然后,我建议您找到他们正在使用的机制并将其发布在此处,以便我们了解如何消除它。该扩展程序最有可能起作用。
Phil H

它有效并且还注意到onselectstart可以重新启用突出显示功能
Kelvin Ng

1
如何启用“左键单击”?
GorvGoyl 2015年

1
我按F12键,然后使用控制台,您的第二个脚本效果很好,谢谢
jmdon

32

已在Chrome 60.0.3112.78中测试。

上述方法中的一些可行,但我认为最简单的方法是:

  1. 打开开发工具(Shift + Control + i)。

  2. 选择“元素”选项卡,然后选择“事件监听器”选项卡。

  3. 将鼠标悬停在元素/侦听器上。将显示一个“删除”按钮。

  4. 点击“删除”。

例如看照片。

删除事件监听器


不幸的是,我的目标网站是ieltsliz.com/ielts-writing-task-1-lessons-and-tips
奥马尔

22

最简单的方法是按Cmd + Opt + I(Mac)或F12(PC),打开开发工具。然后,您可以使用搜索(放大镜,位于开发工具工具栏的左上方)来选择元素。


谢谢,但是在这个阶段,我想重新启用道具……不是解决方法
Zo72 2014年

3
或执行Ctrl(Cmd)+ Shift + C键直接打开“元素选择”功能
-Titi

19

该手册自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();

对于peskier网站,请将“积极”设置/传递为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();

15

您可以使用以下代码重新启用鼠标右键。

document.oncontextmenu = function(){}

并且您可以使用快捷键(Ctrl + Shift + i)在Windows操作系统中以chrome打开检查元素。


1
这就像一个魅力!如果您必须像我一样经常这样做,则可以将其添加为书签:创建一个新书签,并放置为URL:javascript:(document.oncontextmenu = function(){})()现在,每次您有一个困扰您的页面,只需单击小书签并完成。
nico gawenda

这是最好的答案。非常感谢。
阿里·哈希米

12

我以@Chema解决方案为基础,并添加了resetpointer-eventsuser-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();

这可行,而第一个解决方案却没有(在缩放屏幕录制页面上尝试过)
银色

7

您可以使用javascript:void(document.oncontextmenu=null); 打开的浏览器控制台并运行上面的代码。它将关闭鼠标右键的阻止功能


6

另一种可能的方法,当使用jquery进行阻止功能时,请使用:

$(document).unbind();

它将清除所有动态分配的onmousedown和contextmenu事件,这些事件无法使用document.contextmenu = null删除。等等


同样对我来说,一些代码也做了重新绑定:$(document).bind("contextmenu",function(e){if(!$('#easyy').length)e.preventDefault();});
庆典大师

1

嗨,我有一个较短的版本。这与最佳答案相同。(适用于Chrome 74.03)

document.querySelectorAll('*').forEach(e => e.oncontextmenu = null)

0

在Chrome中禁用“设置>隐私>不允许JavaScript”,将启用右键单击功能并允许Firebug控制台运行;但也会禁用所有其他JavaScript代码。

正确的方法是仅禁用特定的JavaScript。寻找以下任何代码行:

  • 功能disableclick
  • 函数点击…返回false;
  • body oncontextmenu =“ return false;”

0

我刚刚访问了这个网站,它确实困扰了我,

显然,有几种方法可以禁用鼠标单击:

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)

使用Flash作为内容包装器-除了拍摄屏幕截图以外,这里没有其他解决方案

3)

一些网站希望阻止通过右键单击下载图像->将图像另存为

所以他们的工作是这样的:

<div style="background-image: url(YourImage.jpg);">
   <img src="transparent.gif"/>
</div>

这是一张透明的图像,显​​示在屏幕的整个宽度和高度上,您需要做的就是转到元素检查器并找到div并将其删除。

在我的情况下,第一个成功了


0

我解决此问题的方法是删除页面上的事件侦听器。完成之后,我可以复制文本并将其粘贴到我选择的处理器中。


0

如果您所在的页面上有文本文本区域输入,请单击此输入(就像您要输入文本一样),然后右键单击并选择“检查元素”。



-1

我找到的最简单的方法是在“阅读”模式(支持Safari,Firefox等阅读模式的浏览器)中打开网页,然后照常进行复制


-3

只需按F12

前往资源

在那里,您将找到“启用右键单击”。点击它。

在此之下,您将找到web_accessible_resource

在其中打开它,您将找到index.js

Ctrl + F并搜索disabelRightClick。在那里你会发现

        var disableRightClick = false;  

这条线。将此行替换为

        var disableRightClick = true;

只需按 Ctrl + s

!! 做完了 现在您的右键单击启用了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.