Wie stelle ich Google Chrome so ein, dass Javascript mein Rechtsklick-Menü nicht übernimmt?

45

Ich verachte Websites, die meine rechte Maustaste über Javascript hijacken. Andere Browser (wie Firefox) ermöglichen es mir, Websites daran zu hindern, dies zu tun. Hat Chrome eine solche Option oder bin ich nervigen Website-Designern ausgeliefert?

Ich möchte Javascript nicht komplett ausschalten. Ich möchte nur verhindern, dass Javascript meine rechte Maustaste übernimmt. Mit Firefox können Sie verhindern, dass Javascript bestimmte Aktionen wie diese ausführt. Ich versuche herauszufinden, ob Chrome dies auch tut. Ich gehe davon aus, dass dies an dieser Stelle nicht der Fall ist.

Peter
quelle

Antworten:

17

Probieren Sie diese Chrome-Erweiterung aus. Sie verhindert, dass Websites den Rechtsklick blockieren.

Rechtsklick aktivieren

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

Alexander Lai
quelle
das sieht vielversprechend aus!
Peter
4
Es ist wirklich enttäuschend, dass Chrome hierfür eine Erweiterung benötigt, aber es behebt das Problem. Gewählte Antwort, aber immer noch auf der Suche nach einer besseren Lösung.
JM Becker
Das hat wie ein Zauber gewirkt. Ich machte mich bereit, meine eigene Erweiterung zu bauen. Yay für die Forschung.
Bis zum
7
@ Karl Morrison: Ich denke, Sie haben meine Kritik vielleicht missverstanden. Ich habe Chrome nicht dafür kritisiert, dass das Rechtsklick-Menü deaktiviert wurde. Ich war irritiert, dass Chrome keine Methode bietet, um Javascript-Funktionen selektiv zu deaktivieren. Wenn Sie JavaScript deaktivieren, werden viele Websites funktionsunfähig. Firefox bietet die Javascript-Option "Kontextmenüs deaktivieren oder ersetzen".
JM Becker
1
@ Alexander, funktioniert nicht. Getestet in Google Text & Tabellen mit dem Chrome-Browser.
Pacerier
14

Drücken Sie F12, um die Google Chrome-Entwicklertools aufzurufen, und navigieren Sie zum Consolefolgenden Befehl:

document.oncontextmenu=null;

Es sollte den größten Teil des Kontextmenüs zurückbringen.

Es sollte auch für Firefox funktionieren.

Natürlich können Sie in Firefox auch einfach Shift+ Rechtsklick verwenden, um das JS-Kontextmenü zu umgehen.

Shi B.
quelle
7
Funktioniert nicht Getestet in Google Text & Tabellen mit dem Chrome-Browser.
Pacerier
@Pacerier Ich weiß nicht, welche Voodoo-Magie Google auf Docs angewendet hat. Es wird kein Kontextmenü verwendet, und daher funktioniert meine Lösung nicht. Die andere Methode, die ich erwähnte, sollte jedoch auch unter Chrome funktionieren. Verwenden Sie Umschalt + Rechtsklick, um das ursprüngliche Kontextmenü aufzurufen.
Shi B.
Funktioniert bei mir nicht.
Ben Wheeler
1
Um den "funktioniert nicht" -Kommentaren entgegenzuwirken, funktioniert dies möglicherweise nicht für jede Website, aber die Antwort von @ shi-b funktioniert ...
Robert Swift
Es hängt davon ab, an welches dom-Element das Kontextmenü eventlistener angehängt wurde. Oft ist es ein Dokument, aber es kann an jedes Element angehängt werden.
Scott Christopherson
4

Ich habe eine akzeptable Lösung von About.com gefunden . Es ist ein kleines Lesezeichen, auf das von Natur aus geklickt werden muss, um diese ärgerliche JS zu deaktivieren. Allerdings finde ich es besser als die Firefox-Stil-Option, da viele Websites die Steuerung von JS mit der rechten Maustaste benötigen. Zum Beispiel Google Text & Tabellen etc ...

Zumindest muss ich keine Ressourcen verschwenden, um eine zusätzliche Erweiterung im Speicher zu speichern. Sie können mit dem Task-Manager sehen, wie Chrome Erweiterungen speichert, und grob gesagt, Sie müssen eine Erweiterung installieren, um sie anzuzeigen.

JM Becker
quelle
Der Code ist javascript:void(document.onmousedown=null);void(document.onclick=null);void(document.oncontextmenu=null). Leider funktioniert es bei mir in Netflix mit Google Chrome nicht. Aber chrome.google.com/webstore/detail/allow-right-click/… hat funktioniert .
Aaron Thoma
2

Ich benutze NotScripts

BEARBEITEN:

Ich habe zu ScriptNo gewechselt , das eine genauere Steuerung bietet

Moab
quelle
1
Können Sie damit steuern, was JavaScript auf einer Seite kann und was nicht, oder blockiert es nur JavaScript insgesamt?
Peter
Es blockiert js nach Domain, jede Domain kann von Ihnen ausgewählt werden. Das hängt davon ab, was Sie unter Hijacken mit der rechten Maustaste verstehen.
Moab
3
Ja. Ich möchte die Fähigkeit, Javascript daran zu hindern, Mausklickereignisse zu verwenden, die von meiner rechten Maustaste kommen.
Peter
Eine andere Lösung, die nicht besonders gut ist, aber einen großen Schritt über der vollständig deaktivierten JS. Ich habe FireFox-Noscript verwendet, das immer noch kaum verwendbar ist, aber Chrome-Notscripts sind sogar noch schlimmer. Sie erfordern beide manuelle Eingriffe und aktivieren / deaktivieren JS grundsätzlich nur vollständig pro Domain. Wenn Sie das Problem der fein abgestimmten Deaktivierung von JS DOM lösen möchten, reichen beide nicht aus. Obwohl von der Haut der Zähne, ist es gerade gut genug, um meine Ablehnung zu vermeiden.
JM Becker
@ TechZilla überprüfen meine Bearbeitung oben
Moab
0

Dieses Bookmarlet funktioniert auf Google Sites / Youtube ab August 2019 (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 für Peskier-Sites / Pass aggressive auf true (dies deaktiviert die meisten Event-Handler 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
-1

Sie können Javascript auf jeder Website in Google Chrome einfach aktivieren / deaktivieren oder zulassen / blockieren. Klicken Sie einfach vor der Website-URL auf das Papier-Schild. Unter Berechtigungen sehen Sie javescript, klicken Sie auf den Abwärtspfeil, um ein Menü anzuzeigen, wählen Sie "Immer auf dieser Site blockieren" und laden Sie die Webseite neu, damit die Änderungen wirksam werden.

Hoffe das wird helfen.

Hier ist der Link zum Bild.

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

Tahir Taous
quelle
2
Ich versuche nicht, alles Javascript zu blockieren. Ich möchte nur Javascript daran hindern, rechte Mausklicks abzufangen. Einige Browser bieten diese Option an.
Peter
-1

Ich habe diese Chrome-Erweiterung RightToCopy gefunden

Es ermöglicht das Klicken mit der rechten Maustaste und das Auswählen und Kopieren von Text von Websites.

JerryGoyal
quelle
-1

Aufbauend auf der Lösung von Shi B. habe ich einen zuverlässigen Weg gefunden, das Problem in Google Chrome zu lösen.

(1) Holen Sie sich ein benutzerdefiniertes Javascript für das Web- Plugin für Chrome.

(2) document.oncontextmenu=null;In die Konsole des Plugins einfügen.

Klappt wunderbar.

Karolis
quelle
(Ich weiß, dass dies alt ist, aber ich bin zu neugierig, es sein zu lassen.) Warum in aller Welt würden Sie dies anstelle der Standardkonsole verwenden? Für mich scheint es nur ein schwierigerer Weg zu sein, genau dasselbe zu erreichen.
Dennis Krøger
1
In meinem Fall bin ich auf dieselbe Website zurückgekehrt (Dropbox Paper). Das Skript wurde also automatisch für eine Website ausgeführt. Zum Glück hat die Firma das
Problem
document.oncontextmenu=null;funktioniert nicht auf sheets.google.com in Chrome.
Xaxxon