Wie deaktiviere ich den Rechtsklick auf meine Webseite?

316

Kann ich den Rechtsklick auf meine Webseite deaktivieren, ohne JavaScript zu verwenden? Ich frage dies, weil die meisten Browser dem Benutzer erlauben, JavaScript zu deaktivieren.

Wenn nicht, wie verwende ich JavaScript, um den Rechtsklick zu deaktivieren?

Vinay Pandey
quelle
130
Das Deaktivieren des Rechtsklicks ist keine Sicherheit, sondern nervt nur Ihre Benutzer. Jeder Browser, mit dem Sie dies nicht deaktivieren können, ist wertlos, aber Websites, die dies überhaupt tun, sind schrecklich.
Dan Olson
17
Wenn Sie nicht möchten, dass Ihre Inhalte aufgenommen werden, sollten Sie sie nicht im Internet veröffentlichen. :) Moderne Browser können sogar die Fähigkeit von JavaScript überschreiben, Rechtsklick zu deaktivieren. Tools wie Firebug / Web Dev Toolbar machen den Schutz unbrauchbar.
Epascarello
7
Hier ist ein kleines Chrome / Greesemonkey-Benutzerskript zum erneuten Aktivieren des Rechtsklicks: dl.dropbox.com/u/464119/Programming/javascript/…
ripper234
31
Wirklich @DanOlson ... was sollen Sie tun, wenn Sie Ihr eigenes Rechtsklick-Menü codieren möchten? Wie in cPanel gefunden.
Codesmith
30
@epascarello Es gibt bestimmte Fälle, in denen das Deaktivieren des Rechtsklicks unerlässlich ist, wie bei Kiosk-Terminals, weil der Benutzer es dort tatsächlich nicht benötigt und es dort möglicherweise die Benutzer nervt
Aram

Antworten:

525

Sie können dies mit JavaScript tun, indem Sie einen Ereignis-Listener für das Ereignis "Kontextmenü" hinzufügen und die preventDefault()Methode aufrufen :

document.addEventListener('contextmenu', event => event.preventDefault());

Davon abgesehen : TUN SIE ES NICHT.

Warum? Weil es nichts anderes erreicht als nervige Benutzer. Außerdem haben viele Browser eine Sicherheitsoption, um das Deaktivieren des Rechtsklick-Menüs (Kontextmenüs) ohnehin nicht zuzulassen.

Ich bin mir nicht sicher, warum du das willst. Wenn Sie nicht glauben, dass Sie Ihren Quellcode oder Ihre Bilder auf diese Weise schützen können, denken Sie noch einmal darüber nach: Sie können nicht.

Cletus
quelle
86
Die Verwendung oncontextmenu="return false"auf etwas anderem als dem Körper kann sinnvoll sein, beispielsweise auf einer Leinwand.
AdrienBrault
62
Wir stellen auf Kiosk-Computern bereit und haben diese Methode gewählt, um zu verhindern, dass Benutzer die Seite aktualisieren.
Todd Horst
21
@ToddHorst in diesem Fall würde ich eine spezielle "Kiosk" -Version des Browsers ohne Benutzeroberfläche verwenden, die normalerweise auch ohne Kontextmenüs verfügbar ist :)
mihi
17
Berührungsfähige Systeme ordnen manchmal bestimmte Berührungsereignisse, z. B. ein langes Tippen, dem Rechtsklick zu (und öffnen dadurch das Kontextmenü). Dieses Verhalten kann jedoch unerwünscht sein, und die einzig sinnvolle Möglichkeit, dies zu verhindern, scheint darin zu bestehen, das Kontextmenü vollständig zu deaktivieren.
ODER Mapper
58
Alter Thread, aber falls jemand ihn liest, machen nicht alle Webentwickler ihre Websites für sich selbst. Manchmal kommt der Kunde zu Ihnen und besteht darauf, den Rechtsklick zu deaktivieren. Wenn Sie versuchen, ihn davon zu überzeugen, sucht er nur nach einem anderen Entwickler, der dies tut ohne zu zögern
Danny22
122

NICHT

Tu es einfach nicht.

Unabhängig davon, was Sie tun, können Sie nicht verhindern, dass Benutzer uneingeschränkten Zugriff auf alle Daten auf Ihrer Website haben. Jedes Javascript, das Sie codieren, kann durch einfaches Deaktivieren von Javascript im Browser (oder mithilfe eines Plugins wie NoScript) außer Kraft gesetzt werden. Darüber hinaus gibt es keine Möglichkeit, die Fähigkeit eines Benutzers zu deaktivieren, einfach "Quelltext anzuzeigen" oder "Seiteninformationen anzuzeigen" (oder wget zu verwenden) für Ihre Site.

Die Mühe lohnt sich nicht. Es wird nicht wirklich funktionieren. Dadurch wird Ihre Website für Benutzer aktiv feindlich eingestellt. Sie werden dies bemerken und aufhören zu besuchen. Dies hat keinen Vorteil, nur verschwendete Mühe und verlorenen Verkehr.

Tu es nicht.

Update: Es scheint, dass sich dieses kleine Thema im Laufe der Zeit als ziemlich kontrovers erwiesen hat. Trotzdem stehe ich zu dieser Antwort auf diese Frage. Manchmal ist die richtige Antwort ein Rat anstelle einer wörtlichen Antwort.

Personen, die über diese Frage stolpern, in der Hoffnung herauszufinden, wie benutzerdefinierte Kontextmenüs erstellt werden, sollten sich anderswo umsehen, z. B. bei folgenden Fragen:

Keil
quelle
230
Wow, ich kann nicht glauben, dass dies eine akzeptierte Antwort war. Es gibt viele gültige Verwendungszwecke, um einen Rechtsklick in einer Webanwendung unter bestimmten Bedingungen zu entfernen.
GAgnew
84
Die wirkliche Antwort sollte sein:<body oncontextmenu="return false;">
Sebastián Grignoli
18
@GAgnew: Es gibt gültige Verwendungszwecke, um das Kontextmenü zu ersetzen. Es gibt keine gültigen Benutzer, die Rechtsklicks bedingungslos und ohne nützliche Behandlung deaktivieren können
ThiefMaster
80
Wenn der Benutzer ein HTML5-Videospiel erstellen möchte, kann das Deaktivieren des Rechtsklicks sehr nützlich sein. Normalerweise ist dies nicht wünschenswert, aber es ist nicht so hilfreich, nur "NICHT" ohne den richtigen Kontext zu sagen.
Robson França
51
-1 auch von mir. Diese Antwort ist nicht hilfreich. Es gibt viele gute Gründe, den Rechtsklick zu deaktivieren. Ich habe beispielsweise eine Webanwendung erstellt, die Krankenhäuser an der Rezeption verwenden, und die Benutzer sind technisch nicht versiert. Obwohl die Anwendung in ihrem Webbrowser ausgeführt wird, verstehen sie nicht, warum alle Menüoptionen angezeigt werden, wenn sie mit der rechten Maustaste klicken. Wir haben unzählige Hilfefragen von Leuten erhalten, die dachten, sie seien Teil der Anwendung. Das Deaktivieren war in diesem Fall und in vielen anderen Webanwendungen sinnvoll.
Nicholas
66

Die ursprüngliche Frage lautete, wie das Klicken mit der rechten Maustaste gestoppt werden kann, da der Benutzer JavaScript deaktivieren kann : Das klingt schändlich und böse (daher die negativen Antworten) - aber alle Duplikate werden hier umgeleitet, obwohl viele der Duplikate weniger böse Zwecke fordern.

Wie zum Beispiel die Verwendung der Rechtsklick-Schaltfläche in HTML5-Spielen. Dies kann mit dem obigen Inline-Code erfolgen, oder ein bisschen schöner ist so etwas:

document.addEventListener("contextmenu", function(e){
    e.preventDefault();
}, false);

Wenn Sie jedoch ein Spiel erstellen , denken Sie daran, dass die Rechtsklick-Schaltfläche das Kontextmenü- Ereignis auslöst - aber auch die regulären Mousedown- und Mouseup- Ereignisse. Sie müssen also die Eigenschaft des Ereignisses überprüfen, um festzustellen, ob die linke (welche === 1), mittlere (welche === 2) oder rechte (welche === 3) Maustaste das Ereignis auslöst.

Hier ist ein Beispiel in jQuery: Beachten Sie, dass durch Drücken der rechten Maustaste drei Ereignisse ausgelöst werden: das Mousedown-Ereignis, das Kontextmenü-Ereignis und das Mouseup-Ereignis.

// With jQuery
$(document).on({
    "contextmenu": function(e) {
        console.log("ctx menu button:", e.which); 

        // Stop the context menu
        e.preventDefault();
    },
    "mousedown": function(e) { 
        console.log("normal mouse down:", e.which); 
    },
    "mouseup": function(e) { 
        console.log("normal mouse up:", e.which); 
    }
});

Wenn Sie also die linke und rechte Maustaste in einem Spiel verwenden, müssen Sie in den Maushandlern eine bedingte Logik ausführen.

Herr Sprecher
quelle
Wenn ich dom.event.contextmenu.enabledin Firefox aktiviert habe , werden die Ereignisse mousedownund mouseupweiterhin ausgelöst, auch wenn contextmenudies nicht der Fall ist?
Robertc
43

Wenn Sie den Benutzer nicht jedes Mal mit einer Nachricht benachrichtigen möchten, wenn er versucht, mit der rechten Maustaste zu klicken, fügen Sie diese Ihrem Body-Tag hinzu

<body oncontextmenu="return false;">

Dadurch wird der gesamte Zugriff auf das Kontextmenü blockiert (nicht nur über die rechte Maustaste, sondern auch über die Tastatur).

Wie in den anderen Antworten erwähnt, macht es jedoch keinen Sinn, einen Rechtsklick-Disabler hinzuzufügen. Jeder mit grundlegenden Browserkenntnissen kann die Quelle anzeigen und die benötigten Informationen extrahieren.

by0
quelle
Ja, aber manchmal möchte ich ein Bild kurz mit jemandem teilen, von dem ich weiß, dass ihm grundlegende Browserkenntnisse fehlen. Das Deaktivieren des Rechtsklicks ist nicht 100% narrensicher, aber wenn ich das Bild nur ein paar Minuten lang poste, damit diese Person es sehen kann, ist es ziemlich sicher.
WillO
Berührungsfähige Systeme ordnen manchmal bestimmte Berührungsereignisse, z. B. ein langes Tippen, dem Rechtsklick zu (und öffnen dadurch das Kontextmenü). Dieses Verhalten kann jedoch unerwünscht sein, und die einzig sinnvolle Möglichkeit, dies zu verhindern, scheint darin zu bestehen, das Kontextmenü vollständig zu deaktivieren.
ODER Mapper
@ WillO: Ich habe einen ähnlichen Anwendungsfall, den ich berücksichtigen muss, aber zu Ihrer Information, Benutzer greifen immer auf Screenshots zurück .
Hassan Baig
28

Wenn Sie ein JQuery-Fan sind, verwenden Sie dies

    $(function() {
        $(this).bind("contextmenu", function(e) {
            e.preventDefault();
        });
    }); 
Vishnu Vikraman
quelle
4
Dies verwendet jQuery ohne Grund. Dies entspricht genau der einzelnen JavaScript-Anweisung in der Antwort von Mr. Speaker, die 1½ Jahre zuvor veröffentlicht wurde. Diese Antwort enthält übrigens auch eine jQuery-Lösung, die Sie wiederum nicht benötigen. Weiß jemand, der diese Antwort positiv bewertet hat, überhaupt, was dies bedeutet? Warum wartet dies darauf, dass das Dokumentbereitschaftsereignis nicht mehr angezeigt wird und das Kontextmenü nicht mehr angezeigt wird? Warum wird dies thisinnerhalb des Ready-Ereignisses verwendet? Warum benutzt du bindstatt on? Ugh ...
Rudey
20

Erstens können Sie dies nicht erreichen, ohne eine clientseitige Funktion zu verwenden. Hier läuft das Javascript.

Zweitens müssen Sie überdenken, wie Sie diese Informationen anzeigen, wenn Sie versuchen zu steuern, was ein Endbenutzer von Ihrer Site konsumieren kann. Ein Bild hat eine öffentliche URL, die über HTTP abgerufen werden kann, ohne dass ein Browser erforderlich ist.

Durch die Authentifizierung kann gesteuert werden, wer Zugriff auf welche Ressourcen hat.

Eingebettete Wasserzeichen in Bildern können beweisen, dass das Bild von einer bestimmten Person / Firma stammt.

Letztendlich ist Ressourcenmanagement wirklich Benutzer- / Gastmanagement.

Die erste Regel des Internets: Wenn Sie nicht möchten, dass es genommen wird, machen Sie es nicht öffentlich!

Die zweite Regel des Internets: Wenn Sie nicht möchten, dass es genommen wird, stellen Sie es nicht ins Internet!

Wayne
quelle
20

Wenn Sie verhindern möchten, dass Personen Ihre Bilder herunterladen können, wie die meisten bereits gesagt haben, ist das Deaktivieren des Rechtsklicks so gut wie ineffektiv.

Angenommen, Sie versuchen, Bilder zu schützen, sind die alternativen Methoden:

Mit einem Flash-Player können Benutzer sie nicht als solche herunterladen, sie können jedoch problemlos eine Bildschirmaufnahme durchführen.

Wenn Sie akward sein möchten, machen Sie das Bild zum Hintergrund eines Div, der ein transparentes Bild enthält, à la -

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

wird ausreichen, um den gelegentlichen Diebstahl Ihrer Bilder zu verhindern (siehe unten für ein Beispiel), aber wie bei all diesen Techniken ist es trivial, mit einem grundlegenden Verständnis von HTML zu besiegen.

Benophobie
quelle
2
Sie können das Image sogar als base64 laden, um den Code weiter zu verschleiern.
Miguel Bartelsman
16

Ohne Javascript können Sie nicht das erreichen, was Sie verlangen. Jede andere Technologie, die Sie möglicherweise verwenden, kann nur dazu beitragen, die Webseite auf der Serverseite zu erstellen, die an den Browser gesendet werden soll.

Es gibt einfach keine gute Lösung und es gibt keine Lösungsperiode ohne Javascript.

Anthony
quelle
1
Und selbst dann ist es für die Benutzer ärgerlich, ganz zu schweigen von der einfachen Umgehung.
Manos Dilaverakis
1
Ich habe bisher nur Seiten gesehen, auf denen ein modales Popup mit der Aufschrift "Rechtsklick ist deaktiviert" angezeigt wird, in dem das Kontextmenü angezeigt wird, wenn Sie es schließen. Sie zeigen die Meldung auch an, wenn Sie mit dem Trackpad scrollen, was sehr ärgerlich ist.
Pete Kirkham
1
Ja, es ist besonders ärgerlich, da es normalerweise verhindert, dass Leute Bilder "stehlen", die sich bereits auf ihrer Festplatte befinden, aber alles, was es tut, ist, mich daran zu hindern, die Kontextsuche zu verwenden: addons.mozilla.org/en-US/firefox/addon/240 . Diese Bastarde ...
Calvin
2
Ich finde es toll, wie fast jede Antwort darauf lautet: "Sicher, benutze Javascript!"
Charles Wood
14

Wenn Sie Benutzern das einfache Speichern Ihrer Bilder untersagen möchten, können Sie auch überprüfen, ob es sich bei dem angeklickten Ziel um ein Bild handelt. Deaktivieren Sie in diesem Fall nur den Rechtsklick. Der Rechtsklick kann also für andere Zwecke verwendet werden. Entnommen aus dem obigen Code:

document.addEventListener("contextmenu", function(e){
    if (e.target.nodeName === "IMG") {
        e.preventDefault();
    }
}, false);

Dies dient nur dazu, den einfachsten Weg zum Speichern Ihrer Bilder zu beseitigen, kann aber trotzdem durchgeführt werden.

Andrew
quelle
Dies ist meiner Meinung nach der beste Weg - als Webbenutzer finde ich die Rechtsklick-Funktion von Zeit zu Zeit nützlich, aber als einfache, einfache (und ja, leicht zu schlagende) Lösung funktioniert dies ohne Ärger.
Ben
9
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.4.4.min.js'></script>
<script type='text/javascript'>//<![CDATA[ 
$(function(){
$('img').bind('contextmenu', function(e){
return false;
}); 
});//]]>  
</script>
</head>
<body>
    <img src="http://www.winergyinc.com/wp-content/uploads/2010/12/ajax.jpg"/>
</body>

aravind3
quelle
2
@ aravind3 Ich habe dein Beispiel verwendet und es funktioniert ein Vergnügen! Meine Bilder sind weiterhin anklickbar und funktionieren wie vorgesehen, können jedoch nicht heruntergeladen werden. Der Grund, warum ich das Klicken mit der rechten Maustaste deaktivieren wollte, ist, dass Besucher, die nur ein Bild möchten und dann sofort gehen, meine Absprungrate beeinflussen. Zumindest auf diese Weise wird meine Absprungrate nicht ganz so schlecht sein, da sie 1 oder 2 Minuten brauchen könnten, um es herauszufinden :) Prost aravind3 !!!!
Coolydude
6

Mach es wie unten (es funktioniert auch auf Firefox):

$(document).on("contextmenu",function(e){

     if( e.button == 2 ) {
         e.preventDefault();
          callYourownFucntionOrCodeHere();
     }
return true;
});
nntona
quelle
5

Fügen Sie diesen Code in Ihr <head>Tag Ihrer Seite ein.

<script type="text/javascript"> 
function disableselect(e){  
return false  
}  

function reEnable(){  
return true  
}  

//if IE4+  
document.onselectstart=new Function ("return false")  
document.oncontextmenu=new Function ("return false")  
//if NS6  
if (window.sidebar){  
document.onmousedown=disableselect  
document.onclick=reEnable  
}
</script>

Dadurch wird der Rechtsklick auf Ihre gesamte Webseite deaktiviert, jedoch nur, wenn JavaScript aktiviert ist.

Tejas
quelle
Dies funktioniert nicht auf Firefox. Es deaktiviert die Eingabeauswahl für die Eingabe von Formularen :(
ALWAN
5

Ich hatte diesen Code verwendet, um den Rechtsklick auf eine beliebige Webseite zu deaktivieren. Es funktioniert einwandfrei. Sie können diesen Code verwenden

jQuery(document).ready(function(){
  jQuery(function() {
        jQuery(this).bind("contextmenu", function(event) {
            event.preventDefault();
            alert('Right click disable in this site!!')
        });
    });
});
<html>
  <head>
    <title>Right click disable in web page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  </head>
  <body>
    You write your own code
  </body>
</html>

Arvinda Kumar
quelle
4

Wie bei allen anderen Kommentaren hier funktioniert dies natürlich einfach nicht.

Ich habe einmal ein einfaches Java-Applet für einen Client erstellt, das die Erfassung eines Bildes über die Bildschirmaufnahme erzwang, und Sie möchten möglicherweise eine ähnliche Technik in Betracht ziehen. Es hat innerhalb der Grenzen funktioniert, aber ich denke immer noch, dass es Zeitverschwendung war.

Cruachan
quelle
4
    <script>
        window.oncontextmenu = function () {
            console.log("Right Click Disabled");
            return false;
        }
    </script>
Anbu
quelle
3

Versuche dies

<script language=JavaScript>
//Disable right mouse click Script

var message="Function Disabled!";

function clickIE4(){
if (event.button==2){
alert(message);
return false;
 }
}

function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
alert(message);
return false;
}
}
}

if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}

document.oncontextmenu=new Function("alert(message);return false")

</script>
Dipesh
quelle
3

Das Deaktivieren des Rechtsklicks auf Ihre Webseite ist einfach. Es gibt nur wenige Zeilen JavaScript-Code, die diese Aufgabe übernehmen. Unten ist der JavaScript-Code:

$("html").on("contextmenu",function(e){
   return false;
});

Im obigen Code habe ich das Tag ausgewählt. Nachdem Sie nur diese drei Codezeilen hinzugefügt haben, wird der Rechtsklick auf Ihre Webseite deaktiviert.

Quelle: Deaktivieren Sie das Klicken mit der rechten Maustaste, das Kopieren und das Ausschneiden von Webseiten mit jQuery

Faruque Ahamed Mollick
quelle
2
 $(document).ready(function () {
            document.oncontextmenu = document.body.oncontextmenu = function () { return false; }
        });
soheil bijavar
quelle
2

Ich weiß, dass ich zu spät komme, aber ich möchte einige Annahmen und Erklärungen für die Antwort erstellen, die ich geben werde.

Kann ich den Rechtsklick deaktivieren?

Kann ich den Rechtsklick auf meine Webseite deaktivieren, ohne Javascript zu verwenden?

Ja, mit JavaScript können Sie jedes Ereignis deaktivieren und dies meistens nur mit JavaScript. Wie, alles was Sie brauchen ist:

  1. Eine funktionierende Hardware

  2. Eine Website oder irgendwo, von der Sie mehr über die Schlüsselcodes erfahren können. Weil du sie brauchen wirst.

Nehmen wir nun an, Sie möchten die Eingabetaste blockieren. Hier ist der Code:

function prevententer () {
 if(event.keyCode == 13) {
  return false;
 }
}

Für den Rechtsklick verwenden Sie Folgendes:

event.button == 2

anstelle von event.keyCode. Und du wirst es blockieren.

Ich möchte dies fragen, da die meisten Browser es Benutzern erlauben, es mit Javascript zu deaktivieren.

Sie haben Recht, Browser ermöglichen Ihnen die Verwendung JavaScriptund Javascript erledigt den gesamten Job für Sie. Sie müssen nichts einrichten, sondern nur das Skriptattribut im Kopf.

Warum sollten Sie es nicht deaktivieren?

Die wichtigste und schnellste Antwort darauf wäre, dass die Benutzer es nicht mögen werden . Jeder braucht Freiheit, niemand, ich meine, niemand möchte blockiert oder behindert werden. Vor ein paar Minuten war ich auf einer Website, die mich daran gehindert hatte, mit der rechten Maustaste zu klicken, und ich fühlte, warum? Müssen Sie Ihren Quellcode sichern? Dann habe ctrl+shift+Jich hier das geöffnet Consoleund jetzt kann ich zum HTML-codeTab gehen . Mach weiter und halte mich auf. Dadurch wird Ihrer App keine Sicherheitsschicht hinzugefügt.

Es gibt viele benutzerfreundliche Menüs im Rechtsklick, wie Kopieren, Einfügen, Google nach "Text" durchsuchen (in Chrome) und vieles mehr. Der Benutzer möchte daher einen einfachen Zugriff erhalten, anstatt sich an viele Tastaturkürzel zu erinnern. Jeder kann weiterhin den Kontext kopieren, das Bild speichern oder tun, was er will.

Browser verwenden die Mausnavigation: Einige Browser wie Opera verwenden die Mausnavigation. Wenn Sie sie deaktivieren, würde der Benutzer Ihre Benutzeroberfläche und die Skripte definitiv hassen.

Das war also die Grundvoraussetzung, ich wollte noch etwas über das Speichern des Quellcodes schreiben, aber lassen Sie es die Antwort auf Ihre Frage sein.

Verweis auf die Schlüsselcodes:

Tasten- und Maustastencode:

http://www.w3schools.com/jsref/event_button.asp

https://developer.mozilla.org/en-US/docs/Web/API/event.button (würde auch von den Benutzern geschätzt werden).

Warum nicht den Rechtsklick deaktivieren:

http://www.sitepoint.com/dont-disable-right-click/

Afzaal Ahmad Zeeshan
quelle
1

Javascript:

document.getElementsByTagName("html")[0].setAttribute("oncontextmenu", "return false"); 
زياد
quelle
0

Wichtiger Hinweis: Es hängt vom Browser und vom Betriebssystem ab , ob eine solche Verhinderung möglich ist oder nicht!

Solltest du es tun? Nein . Weil es den Benutzer nicht verhindert, sondern ihn nur nervt.

Kannst du es benutzen? Ja . Beispiele: In einigen Web-Apps, in denen Sie ein angepasstes Popup-Menü wünschen, im Spiel, in dem Benutzer möglicherweise verärgert sind, wenn sie versehentlich mit der rechten Maustaste klicken, und in anderen Fällen.

Chrome (v65) in Ubuntu 16.04 = Sie CAN rechten Maustaste deaktivieren.

Chrome (v65) unter Mac OS 10.11 = Sie können den Rechtsklick NICHT deaktivieren.

Chrome (v65) in Windows 7 = Sie können den Rechtsklick NICHT deaktivieren.

Firefox (v41) in Mac OS 10.11 = Sie CAN rechten Maustaste deaktivieren.

Firefox (v43) in Windows 7 = Sie CAN rechten Maustaste deaktivieren.

// Vanilla JS way
document.addEventListener('contextmenu', function(e){
    e.preventDefault();
});

// jQuery way
$(document).bind('contextmenu', function(e) {
    e.preventDefault();
});
böseReiko
quelle
0

Ein paar Dinge zu beachten:

Browser-Plugins wie "Rechtsklick aktivieren" im Chrome Store existieren aus einem bestimmten Grund, und Sie können sie nicht umgehen. Es gibt buchstäblich nichts, was Sie tun können, um zu verhindern, dass Leute Ihre Inhalte herunterladen, da sie sie buchstäblich herunterladen müssen, um sie überhaupt in ihrem Browser zu sehen. Die Leute versuchen es, aber es ist immer da draußen.

Wenn Inhalte nicht öffentlich sein sollten, stellen Sie sie im Allgemeinen nicht online.

Das Nichtklicken mit der rechten Maustaste ist ein Problem der Barrierefreiheit und stellt in vielen Fällen eine rechtswidrige Diskriminierung von Blinden, Behinderten oder älteren Menschen dar. Überprüfen Sie Ihre lokalen Gesetze, aber in den USA ist es aktiv gegen das Gesetz in Form der Federal ADA, da Blinde oder ältere Menschen, die möglicherweise Sehprobleme haben, eine gesetzlich geschützte Klasse sind.

Anstatt dies zu tun und viel Zeit und Mühe zu verschwenden, machen Sie sich nicht einmal die Mühe, dies zu versuchen. Es könnte nur dazu führen, dass Ihr Unternehmen verklagt wird oder ein Compliance-Audit nicht bestanden wird.

ehrlichduane
quelle
0

Versuchen Sie diesen Code, um die Option "Inspect Element" zu deaktivieren

    jQuery(document).ready(function() {
    function disableSelection(e) {
        if (typeof e.onselectstart != "undefined") e.onselectstart = function() {
            return false
        };
        else if (typeof e.style.MozUserSelect != "undefined") e.style.MozUserSelect = "none";
        else e.onmousedown = function() {
            return false
        };
        e.style.cursor = "default"
    }
    window.onload = function() {
        disableSelection(document.body)
    };

    window.addEventListener("keydown", function(e) {
        if (e.ctrlKey && (e.which == 65 || e.which == 66 || e.which == 67 || e.which == 70 || e.which == 73 || e.which == 80 || e.which == 83 || e.which == 85 || e.which == 86)) {
            e.preventDefault()
        }
    });
    document.keypress = function(e) {
        if (e.ctrlKey && (e.which == 65 || e.which == 66 || e.which == 70 || e.which == 67 || e.which == 73 || e.which == 80 || e.which == 83 || e.which == 85 || e.which == 86)) {}
        return false
    };

    document.onkeydown = function(e) {
        e = e || window.event;
        if (e.keyCode == 123 || e.keyCode == 18) {
            return false
        }
    };

    document.oncontextmenu = function(e) {
        var t = e || window.event;
        var n = t.target || t.srcElement;
        if (n.nodeName != "A") return false
    };
    document.ondragstart = function() {
        return false
    };
});
Agan116
quelle
1
Vielen Dank für dieses Code-Snippet, das möglicherweise nur begrenzte kurzfristige Hilfe bietet. Eine richtige Erklärung würde ihren langfristigen Wert erheblich verbessern, indem sie zeigt, warum dies eine gute Lösung für das Problem ist, und es für zukünftige Leser mit anderen, ähnlichen Fragen nützlicher machen. Bitte bearbeiten Sie Ihre Antwort, um eine Erklärung hinzuzufügen, einschließlich der von Ihnen getroffenen Annahmen.
Toby Speight
Dies kann in Chrome sehr einfach überschrieben werden: Klicken Sie auf die 3 Punkte neben Ihrem Profilbild> Weitere Tools> Entwicklertools
sportzpikachu
-1

Verwenden Sie diese Funktion, um den Rechtsklick zu deaktivieren. Sie können den Linksklick deaktivieren und auch durch checking 1 and 0Entsprechen tippen

document.onmousedown = rightclickD;
            function rightclickD(e) 
            { 
                e = e||event;
                console.log(e);
                if (e.button == 2) {
                //alert('Right click disabled!!!'); 
                 return false; }
            }
Codeknacker
quelle
Javascript zu verwenden, um das zu tun, was HTML bereits tut, ist schlechtes Engineering und verschwenderisch
ehrlich,