2010-06-21 7 views
16

Ich möchte Mausklick mit der rechten Maustaste auf eine HTML-Seite deaktivieren. Ich habe eine Seite, wo der Benutzer die Details eingeben muss. Ich möchte nicht, dass der Benutzer das Menü sieht, das mit der rechten Maustaste angezeigt wird. Ich möchte stattdessen ein benutzerdefiniertes Menü anzeigen. Ich weiß, dass dafür einige Plugins verfügbar sind. Aber meine Anforderung benötigt keine Plugins.Wie deaktiviert man die Maus mit der rechten Maustaste auf eine Webseite?

+1

Sicherheit durch Dunkelheit? –

+15

Was ist das Problem mit dem Menü? Es gehört dem Benutzer, also überlass es ihm. * Stellen Sie sich vor, ein Benutzer versteht ein Wort nicht und möchte einen Übersetzungsdienst verwenden, der über das Kontextmenü zugänglich ist. * –

+8

Warum möchten Sie das tun? Viele Benutzer finden es verwirrend, wenn die Seite nicht wie alle anderen Webseiten funktioniert. –

Antwort

41

Es ist unprofessionell, trotzdem wird dies aktiviert mit Javascript arbeiten:

document.oncontextmenu = document.body.oncontextmenu = function() {return false;} 

Sie können auch vor der Rückkehr falsch eine Nachricht an den Benutzer zeigen.

Allerdings muss ich sagen, dass dies nicht allgemein gemacht werden sollte, da es Benutzeroptionen begrenzt, ohne das Problem zu lösen (tatsächlich kann das Kontextmenü sehr einfach wieder aktiviert werden).

Der folgende Artikel besser erklärt warum dies nicht getan werden sollte und welche anderen Maßnahmen ergriffen werden können, gemeinsam damit zusammenhängende Fragen zu lösen: http://articles.sitepoint.com/article/dont-disable-right-click

+1

Darüber hinaus ist dies nicht eine all-und end all-Lösung, sie könnten nur deaktivieren js und hey presto. – Kezzer

+0

Warum nicht einfach 'document.oncontextmenu = function() {return false; } '? –

6

Sie können dazu das Ereignis oncontextmenu verwenden.

Aber wenn der Benutzer Javascript deaktiviert, werden Sie nicht in der Lage sein, damit umzugehen.

window.oncontextmenu = function() { 
    return false; 
} 

deaktiviert Rechtsklick-Menü.

5

Erstens, wenn Sie dies tun, sind nur die Menschen, die Quelle sehen zu verhindern Ihrer Seite - es wird nicht funktionieren, weil sie immer eine Tastenkombination verwenden können, um sie anzuzeigen.

Zweitens müssen Sie JavaScript verwenden, um dies zu erreichen. Wenn der Benutzer JS deaktiviert hat, können Sie den Rechtsklick nicht verhindern.

Das gesagt, fügen Sie das Ihrem body-Tag hinzu, um rechte Klicks zu deaktivieren.

<body oncontextmenu="return false;"> 
6

<body oncontextmenu="return false;"> funktioniert für mich in Google Chrome. Ich bin mir nicht sicher über andere Browser.

Hinweis, alles, was jemand tun muss, ist JavaScript zu deaktivieren, um das Kontextmenü trotzdem zu sehen.

1

Bitte tun Sie das nicht, es ist sehr ärgerlich.

Das richtige Menü gibt es aus einem bestimmten Grund, und es sollte dort gelassen werden. Viele Browsererweiterungen fügen dem Rechtsklickmenü Einträge hinzu, und der Benutzer sollte in der Lage sein, sie auf jeder von ihm besuchten Seite zu verwenden.

Darüber hinaus können Sie alle Funktionen des Rechtsklick-Menüs auf andere Arten (Tastaturkürzel, Browser-Menü usw. etc etc) verwenden, so blockiert das Rechtsklick-Menü hat die einzige Wirkung der Benutzer ärgern.

PS: Wenn du dem Drang, es zu blockieren, wirklich nicht widerstehen kannst, dann setze wenigstens kein Popup mit der Aufschrift "kein Rechtsklick erlaubt".

+3

-1: Während dies einige gute Punkte macht, beantwortet es die Frage nicht, also sollte ein Kommentar sein. – Quentin

+0

@ David Dorward: Es ist tatsächlich die Frage zu beantworten. Ich sage, dass, obwohl er das Aussehen des Rechtsklick-Menüs blockieren kann, es KEINE Möglichkeit gibt, seine ** Funktionalität ** zu blockieren, da sie auf andere Weise erreichbar sind.Das Blockieren des Rechtsklick-Menüs ist eine schlechte Übung, daher fand ich eine viel bessere Antwort, um zu erklären, warum er das nicht tun sollte. – nico

3

Es gibt viele Beispiele dafür, die jedoch über Google

gefunden werden kann, Benutzer Javascript deaktivieren können diese sehr ärgerlich „Feature“ zu stoppen. Ich denke, Sie sollten darüber nachdenken, bevor Sie es umsetzen. Es wird nicht wirklich Ihre Inhalte schützen (wenn das ist, was Sie versuchen zu erreichen).

Es gibt einen Artikel here, der veranschaulicht, wie nervig und sinnlos es ist.

1

Try this: Schreiben auf dem Körper unter Code & die Magie fühlt :)

body oncontextmenu="return false" 
0

Sie Javascript verwenden können, die rechte Maustaste zu blockieren. Here ist ein Skript, um den Rechtsklick auf die Website zu blockieren.

0

Sie so mit Javascript tun können, und/oder ein HTML-Attribut (die Handler wirklich ein Javascript-Ereignis ist sowieso), wie hier beschrieben: http://www.codeproject.com/KB/aspnet/Disabling_the_right_click.aspx

<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"> 
... 
</body> 
0

// deaktiviere Recht klicken Skript über Java-Script-Code

<script language=JavaScript> 
//Disable right click script 
var message = ""; 
/////////////////////////////////// 
function clickIE() { 
    if (document.all) { 
     (message); 
     return false; 
    } 
} 

function clickNS(e) { 
    if (document.layers || (document.getElementById && !document.all)) { 
     if (e.which == 2 || e.which == 3) { 
      (message); 
      return false; 
     } 
    } 
} 
if (document.layers) { 
    document.captureEvents(Event.MOUSEDOWN); 
    document.onmousedown = clickNS; 
} else { 
    document.onmouseup = clickNS; 
    document.oncontextmenu = clickIE; 
} 

document.oncontextmenu = new Function("return false") 
</script> 

Click here to see semo

1
window.oncontextmenu = function() { 
return false; 
} 

könnte Ihnen helfen.

Verwandte Themen