Wie kann ich den Rechtsklick wieder aktivieren, damit ich HTML-Elemente in Chrome überprüfen kann?

79

Ich betrachte eine Webseite, die die Rechtsklick-Schaltfläche überschrieben hat, um ein eigenes Popup-HTML-Element anzuzeigen.

Dies hindert mich daran, Chrome Developer Tools zum Überprüfen von Elementen zu verwenden.

Kennt jemand ein JavaScript-Snippet, das ich aus der Chrome-Konsole einfügen könnte, um den Rechtsklick wieder zu aktivieren?

Ich bin in Ordnung, die vorhandene 'Rechtsklick'-Funktionalität zu brechen, um die HTML-Elemente einfach überprüfen zu können.

Vielen Dank.

Zo72
quelle
Wenn Sie Firebug für Firefox verwenden, können Sie Elemente immer noch mit der Maus markieren ... Ich weiß, dass dies die Verwendung von Firefox bedeutet, aber es könnte hilfreich sein.
Joshua Smickus
@Teemu Firebug Lite ist auf Chrome verfügbar. Ich bin mir nicht sicher, warum Sie es über die Standardwerkzeuge verwenden müssen.
James Donnelly
1
@JoshSmickus Die Frage ist mit [google-chrome] gekennzeichnet. Außerdem fragt OP, wie Chrome-Entwicklertools zum Überprüfen von Elementen verwendet werden.
Teemu

Antworten:

68

Wenn sie gerade den oncontextmenuHandler geändert haben (was der einfachste Weg ist, dies zu tun), können Sie ihre Überschreibung folgendermaßen entfernen:

window.oncontextmenu = null;

Andernfalls können Sie, wenn es an einzelne Elemente angehängt ist, alle Elemente der Seite abrufen und dann den Handler für jedes Element entfernen:

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

Oder Sie können solche Skripte anscheinend deaktivieren. über eine Erweiterung in Chrome oder eine Option in Firefox - deaktivieren Sie im erweiterten Feld für Javascript-Optionen die Option "Kontextmenüs deaktivieren oder ersetzen".

Phil H.
quelle
3
Ich denke, Sie sind auf dem richtigen Weg ... aber ich habe es gerade getestet und es funktioniert nicht ...
Zo72
1
Dann schlage ich vor, dass Sie den von ihnen verwendeten Mechanismus finden und hier veröffentlichen, damit wir sehen können, wie Sie ihn beseitigen können. Die Erweiterung funktioniert höchstwahrscheinlich.
Phil H
Es funktioniert und auch beachten Sie, dass onselectstart das Hervorheben wieder aktivieren könnte
Kelvin Ng
1
Wie kann ich "Linksklick" aktivieren?
GorvGoyl
1
Ich drückte F12 und benutzte dann die Konsole und dein zweites Skript funktionierte großartig, danke
jmdon
32

Getestet in Chrome 60.0.3112.78.

Einige der oben genannten Methoden funktionieren, aber meiner Meinung nach ist die einfachste:

  1. Öffnen Sie die Entwicklungswerkzeuge (Umschalt + Strg + i).

  2. Wählen Sie die Registerkarte "Elemente" und dann die Registerkarte "Ereignis-Listener".

  3. Bewegen Sie den Mauszeiger über die Elemente / den Listener. Eine Schaltfläche "Entfernen" wird angezeigt.

  4. Klicken Sie auf "Entfernen".

ZB siehe Foto.

Ereignis-Listener entfernen

Vagelis Prokopiou
quelle
22

Am einfachsten öffnen Sie die Entwicklungswerkzeuge, indem Sie Cmd + Opt + I (Mac) oder F12 (PC) drücken. Sie können dann die Suche (Lupe, oben links in der Symbolleiste der Entwicklungswerkzeuge) verwenden, um das Element auszuwählen.

Nick
quelle
danke, aber zu diesem Zeitpunkt möchte ich auch die Requisiten wieder aktivieren ... keine
Problemumgehung
3
oder Sie können Strg (Cmd) + Umschalt + C drücken, um die Funktion 'Elementauswahl' direkt zu öffnen
Titi
18

Dieses Bookmarlet funktioniert ab August 2019 auf Google-Websites / Youtube (getestet in Chrome und 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();

Setzen Sie bei lästigeren Websites aggressiv auf true (dies deaktiviert die meisten Ereignishandler und damit die Interaktion mit der Seite):

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();
Chema
quelle
15

Sie können den folgenden Code verwenden, um den Mausklick mit der rechten Maustaste wieder zu aktivieren.

document.oncontextmenu = function(){}

und Sie können die Tastenkombination (Strg + Umschalt + i) verwenden, um Inspektionselemente in Chrome unter Windows zu öffnen.

Shiyani Suresh
quelle
1
Das funktioniert wie ein Zauber! Wenn Sie dies oft wie ich tun müssen, können Sie es als Lesezeichen hinzufügen: Erstellen Sie ein neues Lesezeichen und geben Sie es als URL ein: javascript: (document.oncontextmenu = function () {}) () Jetzt jedes Mal, wenn Sie ein haben Seite, die Sie nervt, klicken Sie einfach auf das Lesezeichen und fertig.
Nico Gawenda
Dies ist die beste Antwort. Danke vielmals.
Ali Hashemi
12

Ich baute auf der @ Chema-Lösung auf und fügte das Zurücksetzen pointer-eventsund hinzu user-select. Wenn sie nonefür ein Bild festgelegt sind, wird durch Klicken mit der rechten Maustaste nicht das Kontextmenü für das Bild mit Optionen zum Anzeigen oder Speichern aufgerufen.

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();
Łukasz Nojek
quelle
Dies funktionierte, während die erste Lösung nicht funktionierte (auf einer Zoom-Bildschirmaufzeichnungsseite ausprobiert)
elad silver
7

Sie können die javascript:void(document.oncontextmenu=null); offene Browserkonsole verwenden und den obigen Code ausführen. Die Blockierung der rechten Maustaste wird deaktiviert

Serg
quelle
6

Eine andere Möglichkeit, wenn die Blockierungsfunktion mit jquery ausgeführt wird, ist:

$(document).unbind();

Es werden alle dynamisch zugeordneten Ereignisse für das Herunterfahren und das Kontextmenü gelöscht, die nicht mit document.contextmenu = null gelöscht werden können. etc.

Jacvalle
quelle
Das gleiche gilt für mich, einige Codes haben eine Neubindung durchgeführt:$(document).bind("contextmenu",function(e){if(!$('#easyy').length)e.preventDefault();});
Master of Celebration
1

Hallo, ich habe eine kürzere Version. Dies entspricht der besten Antwort. (es funktioniert auf Chrom 74.03)

document.querySelectorAll('*').forEach(e => e.oncontextmenu = null)
Yasuhiro Nakayama
quelle
0

Durch Deaktivieren von "EINSTELLUNGEN> DATENSCHUTZ> JavaScript nicht zulassen" in Chrome wird die Rechtsklickfunktion aktiviert und die Firebug-Konsole funktioniert. deaktiviert aber auch alle anderen JavaScript-Codes.

Der richtige Weg, dies zu tun, besteht darin, nur das spezifische JavaScript zu deaktivieren. Suchen Sie nach einer der folgenden Codezeilen:

  • Funktions-Deaktivierungsklick
  • Funktionsklick… return false;
  • body oncontextmenu = "return false;"
Dinamicore
quelle
0

Ich habe gerade diese Seite besucht und es hat mich wirklich nervt,

Anscheinend gibt es mehrere Möglichkeiten, den Mausklick zu deaktivieren:

1)

<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
function disableclick(event)
{
  if(event.button==2)
   {
     alert(status);
     return false;    
   }
}
</script>

und

<body oncontextmenu="return false">

...

In diesem Fall müssen Sie in den Entwicklungswerkzeugen Folgendes tun:

document.removeEventListener("onmousedown",disableclick);
document.oncontextmenu = function(){}

2)

Verwenden von Flash als Content-Wrapper - hier keine Lösung außer einem Screenshot

3)

Einige Websites möchten verhindern, dass Bilder per Rechtsklick heruntergeladen werden -> Bild speichern unter

Also sagen sie Folgendes:

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

Dies ist ein transparentes Bild, das sich über die gesamte Breite und Höhe des Bildschirms erstreckt. Sie müssen lediglich zum Elementinspektor gehen, das Div suchen und es löschen.

In meinem Fall hat # 1 den Trick gemacht

Elad Silber
quelle
0

Die Art und Weise, wie ich dies gelöst habe, war das Löschen der Ereignis-Listener auf der Seite. Danach konnte ich den Text kopieren und in den Prozessor Ihrer Wahl einfügen.

Jeremy
quelle
0

Wenn die Seite, auf der Sie sich befinden, eine Text- oder Textbereichseingabe enthält , klicken Sie in diese Eingabe (als ob Sie Text eingeben möchten), klicken Sie mit der rechten Maustaste und wählen Sie " Element überprüfen ".

tno2007
quelle
0

Ganz links in der Symbolleiste der Chrome Developer Tools befindet sich eine Schaltfläche, mit der Sie ein zu prüfendes Element auswählen können, unabhängig von den Kontextmenü-Handlern. Es sieht aus wie ein Quadrat mit einem Pfeil in der Mitte .

Achim
quelle
-1

Der einfachste Weg, den ich gefunden habe, besteht darin, die Webseite im Lesemodus (Browser, der den Lesemodus wie Safari, Firefox usw. unterstützt) zu öffnen und dann wie gewohnt zu kopieren

Liju John
quelle
-3

Drücken Sie einfach F12

Gehen Sie zu Quellen

Dort finden Sie Rechtsklick aktivieren . Klick es an.

Darunter finden Sie web_accessible_resource .

Öffnen Sie es in diesem finden Sie index.js .

Drücken Sie Strg + F und Suche nach disabelRightClick . Dort finden Sie

        var disableRightClick = false;  

diese Linie. Ersetzen Sie diese Zeile durch

        var disableRightClick = true;

Drücken Sie einfach Strg + s

!! Erledigt. Jetzt ist Ihr Rechtsklick aktiviert !!

JAGDISCHES DUDHAT
quelle