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?
javascript
Vinay Pandey
quelle
quelle
Antworten:
Sie können dies mit JavaScript tun, indem Sie einen Ereignis-Listener für das Ereignis "Kontextmenü" hinzufügen und die
preventDefault()
Methode aufrufen :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.
quelle
oncontextmenu="return false"
auf etwas anderem als dem Körper kann sinnvoll sein, beispielsweise auf einer Leinwand.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:
quelle
<body oncontextmenu="return false;">
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:
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.
Wenn Sie also die linke und rechte Maustaste in einem Spiel verwenden, müssen Sie in den Maushandlern eine bedingte Logik ausführen.
quelle
dom.event.contextmenu.enabled
in Firefox aktiviert habe , werden die Ereignissemousedown
undmouseup
weiterhin ausgelöst, auch wenncontextmenu
dies nicht der Fall ist?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
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.
quelle
Wenn Sie ein JQuery-Fan sind, verwenden Sie dies
quelle
this
innerhalb des Ready-Ereignisses verwendet? Warum benutzt dubind
statton
? Ugh ...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!
quelle
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 -
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.
quelle
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.
quelle
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:
Dies dient nur dazu, den einfachsten Weg zum Speichern Ihrer Bilder zu beseitigen, kann aber trotzdem durchgeführt werden.
quelle
quelle
dom.event.contextmenu.enabled
Mach es wie unten (es funktioniert auch auf Firefox):
quelle
Fügen Sie diesen Code in Ihr
<head>
Tag Ihrer Seite ein.Dadurch wird der Rechtsklick auf Ihre gesamte Webseite deaktiviert, jedoch nur, wenn JavaScript aktiviert ist.
quelle
Ich hatte diesen Code verwendet, um den Rechtsklick auf eine beliebige Webseite zu deaktivieren. Es funktioniert einwandfrei. Sie können diesen Code verwenden
quelle
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.
quelle
quelle
Versuche dies
quelle
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:
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
quelle
quelle
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?
Ja, mit JavaScript können Sie jedes Ereignis deaktivieren und dies meistens nur mit JavaScript. Wie, alles was Sie brauchen ist:
Eine funktionierende Hardware
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:
Für den Rechtsklick verwenden Sie Folgendes:
anstelle von
event.keyCode
. Und du wirst es blockieren.Sie haben Recht, Browser ermöglichen Ihnen die Verwendung
JavaScript
und 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+J
ich hier das geöffnetConsole
und jetzt kann ich zumHTML-code
Tab 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/
quelle
Javascript:
quelle
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.
quelle
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.
quelle
Versuchen Sie diesen Code, um die Option "Inspect Element" zu deaktivieren
quelle
Verwenden Sie diese Funktion, um den Rechtsklick zu deaktivieren. Sie können den Linksklick deaktivieren und auch durch
checking 1 and 0
Entsprechen tippenquelle