Jak wyłączyć kliknięcie prawym przyciskiem myszy na mojej stronie internetowej?

315

Czy mogę wyłączyć kliknięcie prawym przyciskiem myszy mojej strony internetowej bez użycia JavaScript? Pytam o to, ponieważ większość przeglądarek pozwala użytkownikowi wyłączyć JavaScript.

Jeśli nie, w jaki sposób użyć JavaScript, aby wyłączyć kliknięcie prawym przyciskiem?

Vinay Pandey
źródło
130
Wyłączenie prawego kliknięcia nie jest zabezpieczeniem, tylko denerwuje użytkowników. Każda przeglądarka, która nie pozwala Ci tego wyłączyć, jest bezwartościowa, ale strony, które to robią, są straszne.
Dan Olson
17
Jeśli nie chcesz, aby Twoje treści były pobierane, nie należy publikować ich w Internecie. :) Nowoczesne przeglądarki mogą nawet przesłonić zdolność JavaScript do wyłączania kliknięcia prawym przyciskiem myszy. Narzędzia takie jak Firebug / Web Dev Toolbar czynią ochronę bezużyteczną.
epascarello
7
oto mały skrypt użytkownika chrome / greesemonkey, aby ponownie włączyć kliknięcie prawym przyciskiem: dl.dropbox.com/u/464119/Programming/javascript/...
ripper234 14.11.11
31
Naprawdę @DanOlson ... co powinieneś zrobić, jeśli chcesz zakodować własne menu po kliknięciu prawym przyciskiem myszy? Tak jak w cPanel.
Codesmith
30
@epascarello istnieją pewne przypadki, że wyłączenie kliknięcia prawym przyciskiem jest niezbędne, tak jak w terminalach kiosków, ponieważ użytkownik tak naprawdę go nie potrzebuje, a pozostawienie go może wkurzyć użytkowników
Aram

Odpowiedzi:

524

Możesz to zrobić za pomocą JavaScript, dodając detektor zdarzeń dla zdarzenia „contextmenu” i wywołując preventDefault()metodę:

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

Biorąc to pod uwagę: NIE ROBIĆ.

Dlaczego? Ponieważ osiąga tylko irytujących użytkowników. Również wiele przeglądarek ma opcję bezpieczeństwa, która uniemożliwia wyłączenie menu prawego przycisku myszy (kontekstowego).

Nie jestem pewien, dlaczego chcesz. Jeśli wynika to z niewłaściwego przekonania, że ​​możesz w ten sposób chronić kod źródłowy lub obrazy, pomyśl jeszcze raz: nie możesz.

Cletus
źródło
86
Używanie oncontextmenu="return false"czegoś innego niż ciało może mieć sens, na przykład na płótnie.
AdrienBrault
62
Wdrażamy na maszynach kiosku i wybraliśmy ten sposób, aby uniemożliwić użytkownikom odświeżanie strony.
Todd Horst
21
@ToddHorst w takim przypadku użyłbym specjalnej wersji przeglądarki „Kiosk” bez interfejsu użytkownika, która zwykle jest również dostępna bez menu kontekstowego :)
mihi,
17
Systemy z obsługą dotykową czasami mapują określone zdarzenia dotykowe, takie jak długie dotknięcie, do kliknięcia prawym przyciskiem myszy (a tym samym otwarcia menu kontekstowego). Jednak takie zachowanie może być niepożądane, a jedynym znaczącym sposobem zapobiegania temu jest całkowite wyłączenie menu kontekstowego.
LUB Mapper
58
Stary wątek, ale na wypadek, gdyby ktoś go przeczytał, nie wszyscy programiści tworzą witryny dla siebie, czasami klient przychodzi do Ciebie i nalega na wyłączenie kliknięcia prawym przyciskiem myszy, gdy spróbujesz go przekonać, że po prostu szuka innego programisty, który to zrobi bez wahania
Danny22
123

NIE

Po prostu nie.

Bez względu na to, co robisz, nie możesz uniemożliwić użytkownikom pełnego dostępu do każdej części danych w Twojej witrynie. Dowolny kod JavaScript można wyłączyć, po prostu wyłączając Javascript w przeglądarce (lub używając wtyczki takiej jak NoScript). Ponadto nie ma możliwości wyłączenia możliwości dowolnego użytkownika, aby po prostu „wyświetlić źródło” lub „wyświetlić informacje o stronie” (lub użyć wget) dla swojej witryny.

To nie jest warte wysiłku. To nie zadziała. Sprawi to, że Twoja witryna będzie aktywnie wroga dla użytkowników. Zauważą to i przestaną odwiedzać. Nie przynosi to żadnych korzyści, a jedynie zmarnowany wysiłek i utrata ruchu.

Nie rób

Aktualizacja: Wydaje się, że ten mały temat z czasem okazał się dość kontrowersyjny. Mimo to podtrzymuję tę odpowiedź na to pytanie. Czasami poprawna odpowiedź to rada zamiast dosłownej odpowiedzi.

Ludzie, którzy natkną się na to pytanie w nadziei, że dowiedzą się, jak stworzyć niestandardowe menu kontekstowe, powinni szukać gdzie indziej, takich jak te pytania:

Klin
źródło
229
Wow, nie mogę uwierzyć, że to zaakceptowana odpowiedź. Istnieje wiele prawidłowych zastosowań do usunięcia kliknięcia prawym przyciskiem myszy w aplikacji internetowej w określonych warunkach.
GAgnew
84
Prawdziwa odpowiedź powinna brzmieć:<body oncontextmenu="return false;">
Sebastián Grignoli,
18
@GAgnew: Istnieją poprawne zastosowania do zastąpienia menu kontekstowego. Nie ma ważnych użytkowników, którzy mogliby bezwarunkowo wyłączyć kliknięcia prawym przyciskiem myszy i bez obsługiwania ich w użyteczny sposób
ThiefMaster
80
Jeśli użytkownik chce stworzyć grę wideo HTML5, wyłączenie prawego kliknięcia może być bardzo przydatne. Zwykle nie jest to pożądane, ale samo powiedzenie „NIE” bez odpowiedniego kontekstu nie jest aż tak pomocne.
Robson França
51
-1 ode mnie też. Ta odpowiedź nie jest pomocna. Istnieje wiele dobrych powodów, aby wyłączyć kliknięcie prawym przyciskiem. Na przykład stworzyłem aplikację internetową, z której szpitale korzystają w recepcji, a użytkownicy nie są zręczni technicznie. Mimo że aplikacja działa w przeglądarce internetowej, nie rozumieją, dlaczego wszystkie opcje menu pojawiają się po kliknięciu prawym przyciskiem myszy. Dostaliśmy mnóstwo pytań pomocniczych z pytaniami, jakie są opcje, od ludzi, którzy uważali, że są częścią aplikacji. Wyłączenie ich miało sens w tym przypadku i ma miejsce w wielu innych aplikacjach internetowych.
Mikołaj
66

Pierwotne pytanie dotyczyło sposobu zatrzymania kliknięcia prawym przyciskiem, biorąc pod uwagę, że użytkownik może wyłączyć JavaScript : które brzmią niecne i złe (stąd negatywne odpowiedzi) - ale wszystkie duplikaty przekierowują tutaj, mimo że wiele duplikatów prosi o mniej złe cele.

Na przykład za pomocą przycisku kliknięcia prawym przyciskiem myszy w grach HTML5. Można to zrobić za pomocą powyższego kodu wbudowanego, lub nieco ładniej jest coś takiego:

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

Ale jeśli tworzysz grę, pamiętaj, że kliknięcie prawym przyciskiem powoduje uruchomienie wywołuje zdarzenie kontekstowego - ale również uruchamia regularne zdarzenia mousedown i mouseup . Więc trzeba sprawdzić wydarzenie które właściwość, aby zobaczyć, czy to w lewo (co 1 ===), środkowy (który === 2) lub prawy przycisk (który === 3) myszy, która jest wypalania zdarzenie.

Oto przykład w jQuery - zwróć uwagę, że naciśnięcie prawego przycisku myszy wywoła trzy zdarzenia: zdarzenie mousedown, zdarzenie menu kontekstowego i zdarzenie mouseup.

// 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); 
    }
});

Więc jeśli używasz lewego i prawego przycisku myszy w grze, będziesz musiał zastosować logikę warunkową w procedurach obsługi myszy.

Panie marszałku
źródło
Jeśli mam włączoną obsługę dom.event.contextmenu.enabledprzeglądarki Firefox, mousedownczy mouseupzdarzenia i będą nadal działać, nawet jeśli contextmenunie?
robertc
43

Jeśli nie zależy Ci na powiadamianiu użytkownika za każdym razem, gdy spróbuje kliknąć prawym przyciskiem, spróbuj dodać go do tagu body

<body oncontextmenu="return false;">

Spowoduje to zablokowanie dostępu do menu kontekstowego (nie tylko z prawego przycisku myszy, ale również z klawiatury).

Jednak, jak wspomniano w innych odpowiedziach, naprawdę nie ma sensu dodawanie wyłącznika kliknięcia prawym przyciskiem. Każdy, kto ma podstawową wiedzę na temat przeglądarki, może wyświetlić źródło i wyodrębnić potrzebne informacje.

by0
źródło
Tak, ale są chwile, kiedy chcę krótko udostępnić obraz komuś, o którym wiem, że nie ma podstawowej wiedzy na temat przeglądarki. Wyłączenie kliknięcia prawym przyciskiem myszy nie jest w 100% niezawodne, ale jeśli opublikuję zdjęcie na kilka minut, aby umożliwić tej osobie spojrzenie, jest całkiem bezpieczne.
WillO,
Systemy z obsługą dotykową czasami mapują określone zdarzenia dotykowe, takie jak długie dotknięcie, do kliknięcia prawym przyciskiem myszy (a tym samym otwarcia menu kontekstowego). Jednak takie zachowanie może być niepożądane, a jedynym znaczącym sposobem zapobiegania temu jest całkowite wyłączenie menu kontekstowego.
LUB Mapper
@WillO: Mam podobny przypadek użycia, który muszę obsłużyć, ale do Twojej wiadomości użytkownicy zawsze będą uciekać się do zrzutów ekranu .
Hassan Baig
28

Jeśli jesteś fanem jquery, użyj tego

    $(function() {
        $(this).bind("contextmenu", function(e) {
            e.preventDefault();
        });
    }); 
Wisznu Vikraman
źródło
4
To używa jQuery bez powodu. Robi to dokładnie to samo, co pojedyncze stwierdzenie JavaScript znalezione w odpowiedzi Mr. Speakera, która została opublikowana 1,5 roku wcześniej. Nawiasem mówiąc, ta odpowiedź obejmuje również rozwiązanie jQuery, którego znowu nie potrzebujesz. Czy ktoś, kto głosował za odpowiedzią, w ogóle wie, co to robi? Dlaczego to czeka, aż zdarzenie gotowości dokumentu przestanie wyświetlać menu kontekstowe? Dlaczego używa się tego thisw gotowym wydarzeniu? Dlaczego używasz bindzamiast on? Ugh ...
Rudey,
20

Po pierwsze, nie można tego osiągnąć bez użycia funkcji po stronie klienta. To tutaj działa javascript.

Po drugie, jeśli próbujesz kontrolować, co użytkownik końcowy może spożywać z Twojej witryny, musisz przemyśleć sposób wyświetlania tych informacji. Obraz ma publiczny adres URL, który można pobrać za pośrednictwem protokołu HTTP bez potrzeby korzystania z przeglądarki.

Uwierzytelnianie może kontrolować, kto ma dostęp do jakich zasobów.

Osadzony znak wodny w obrazach może udowodnić, że obraz pochodzi od konkretnej osoby / firmy.

Na koniec zarządzanie zasobami to tak naprawdę zarządzanie użytkownikami / gośćmi.

Pierwszą zasadą Internetu jest to, że jeśli nie chcesz tego robić, nie upubliczniaj jej!

Druga zasada Internetu, jeśli nie chcesz tego robić, nie umieszczaj jej w Internecie!

Wayne
źródło
20

Jeśli Twoim celem jest uniemożliwienie ludziom pobierania twoich zdjęć, jak powiedziała większość osób, wyłączenie kliknięcia prawym przyciskiem myszy jest praktycznie nieskuteczne.

Zakładając, że próbujesz chronić obrazy, alternatywnymi metodami są -

Korzystając z odtwarzacza flash, użytkownicy nie mogą ich pobrać jako takich, ale mogą z łatwością zrobić zrzut ekranu.

Jeśli chcesz być bardziej wyrazisty, ustaw obraz w tle div zawierający przezroczysty obraz à la -

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

wystarczy, aby powstrzymać przypadkową kradzież zdjęć (patrz próbka poniżej), ale podobnie jak w przypadku wszystkich tych technik, pokonanie go jest proste dzięki podstawowemu zrozumieniu HTML.

benofobia
źródło
2
Możesz nawet załadować obraz jako base64, aby dodatkowo zaciemnić kod.
Miguel Bartelsman,
16

Nie możesz osiągnąć tego, o co prosisz, bez użycia Javascript. Każda inna technologia, której możesz użyć, może jedynie pomóc w skomponowaniu strony internetowej po stronie serwera i wysłaniu jej do przeglądarki.

Po prostu nie ma dobrego rozwiązania i nie ma okresu rozwiązania bez Javascript.

Anthony
źródło
1
I nawet wtedy jest to denerwujące dla użytkowników, nie mówiąc już o łatwym do ominięcia.
Manos Dilaverakis,
1
Widziałem tylko strony, które mają modalne wyskakujące okienko z informacją, że „kliknięcie prawym przyciskiem jest wyłączone”, które następnie pokazuje menu kliknięcia prawym przyciskiem myszy po jego odrzuceniu. Wyświetlają również komunikat podczas przewijania za pomocą gładzika, co jest bardzo denerwujące.
Pete Kirkham,
1
Tak, jest to szczególnie denerwujące, ponieważ zwykle uniemożliwia ludziom „kradzież” obrazów znajdujących się już na ich twardym dysku, ale uniemożliwia mi to korzystanie z wyszukiwania kontekstowego: addons.mozilla.org/en-US/firefox/addon/240 . Ci dranie ...
Calvin,
2
Uwielbiam, jak prawie każda odpowiedź na to brzmi „Jasne, użyj javascript!”
Charles Wood
14

Jeśli Twoim celem jest zabronienie użytkownikom po prostu zapisywania zdjęć, możesz również sprawdzić, czy kliknięty cel jest obrazem, w takim przypadku wyłącz tylko kliknięcie prawym przyciskiem myszy. Tak więc kliknięcie prawym przyciskiem może być wykorzystane do innych celów. Na podstawie powyższego kodu:

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

Ma to na celu usunięcie najprostszego sposobu zapisywania zdjęć, ale nadal można to zrobić.

Andrzej
źródło
Jest to moim zdaniem najlepsza droga - jako użytkownik sieci uważam, że funkcja kliknięcia prawym przyciskiem jest przydatna od czasu do czasu, ale jako łatwe, proste (i tak, łatwe do pokonania) rozwiązanie działa bez denerwowania.
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
źródło
2
@ aravind3 Użyłem twojego przykładu i działa uczta! Moje obrazy są nadal klikalne i działają tak, jak powinny, ale nie można ich pobrać. Powodem, dla którego chciałem wyłączyć kliknięcie prawym przyciskiem, jest to, że użytkownicy, którzy chcą tylko obrazu, a następnie od razu wychodzą, wpływają na mój współczynnik odrzuceń. Przynajmniej w ten sposób mój współczynnik odrzuceń nie będzie tak zły, ponieważ może to zająć 1 lub 2 minuty, aby to zrozumieć :) Pozdrawiam aravind3 !!!!
coolydude
6

Zrób to jak poniżej (Działa to również w Firefoxie):

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

     if( e.button == 2 ) {
         e.preventDefault();
          callYourownFucntionOrCodeHere();
     }
return true;
});
nntona
źródło
5

Umieść ten kod w <head>tagu swojej strony.

<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>

Spowoduje to wyłączenie kliknięcia prawym przyciskiem myszy całej strony, ale tylko wtedy, gdy JavaScript jest włączony.

tejas
źródło
To nie działa w Firefoksie, wyłącza wybór danych wejściowych do pisania formularzy :(
ALWAN
5

Użyłem tego kodu, aby wyłączyć kliknięcie prawym przyciskiem myszy na dowolnej stronie internetowej, działa poprawnie. Możesz użyć tego kodu

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
źródło
4

Oczywiście, jak w przypadku wszystkich innych komentarzy tutaj, to po prostu nie działa.

Kiedyś skonstruowałem prosty aplet Java dla klienta, który wymusił przechwycenie obrazu za pomocą zrzutu ekranu i możesz rozważyć podobną technikę. Działało w granicach ograniczeń, ale nadal uważam, że to strata czasu.

Cruachan
źródło
4
    <script>
        window.oncontextmenu = function () {
            console.log("Right Click Disabled");
            return false;
        }
    </script>
Anbu
źródło
3

Spróbuj tego

<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
źródło
3

Wyłączenie prawym przyciskiem myszy strony internetowej jest proste. Jest tylko kilka wierszy kodu JavaScript, które wykonają to zadanie. Poniżej znajduje się kod JavaScript:

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

W powyższym kodzie wybrałem tag. Po dodaniu tylko trzech wierszy kodu spowoduje to wyłączenie kliknięcia prawym przyciskiem myszy strony internetowej.

Źródło: Wyłącz jQuery za pomocą kliknięcia prawym przyciskiem myszy, kopiowania, cięcia na stronie internetowej

Faruque Ahamed Mollick
źródło
2
 $(document).ready(function () {
            document.oncontextmenu = document.body.oncontextmenu = function () { return false; }
        });
Soheil Bijavar
źródło
2

Wiem, że się spóźniam, ale chcę stworzyć pewne założenia i wyjaśnienia dotyczące odpowiedzi, którą zamierzam udzielić.

Czy mogę wyłączyć kliknięcie prawym przyciskiem myszy

Czy mogę wyłączyć kliknięcie prawym przyciskiem myszy na mojej stronie internetowej bez użycia Javascript?

Tak, używając JavaScript, możesz wyłączyć każde zdarzenie, które się wydarzy i możesz to zrobić głównie za pomocą javaScript. Jak wszystko czego potrzebujesz to:

  1. Działający sprzęt

  2. Witryna lub miejsce, z którego można dowiedzieć się o kodach klawiszy. Ponieważ będziesz ich potrzebować.

Powiedzmy teraz, że chcesz zablokować klawisz Enter. Oto kod:

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

Aby kliknąć prawym przyciskiem, użyj tego:

event.button == 2

w miejscu event.keyCode. I zablokujesz to.

Chcę o to zapytać, ponieważ większość przeglądarek umożliwia użytkownikom wyłączenie go przez Javascript.

Masz rację, przeglądarki pozwalają ci używać, JavaScripta javascript wykonuje całą robotę za Ciebie. Nie musisz niczego konfigurować, wystarczy atrybut skryptu w głowie.

Dlaczego nie powinieneś tego wyłączać?

Główną i szybką odpowiedzią na to pytanie byłoby to, że użytkownikom się to nie spodoba . Każdy potrzebuje wolności, nikt nie mam na myśli, że nikt nie chce być zablokowany lub wyłączony, kilka minut temu byłem na stronie, która zablokowała mi kliknięcie prawym przyciskiem myszy i czułem dlaczego? Czy musisz zabezpieczyć swój kod źródłowy? Potem tutaj ctrl+shift+Jotworzyłem Consolei teraz mogę iść doHTML-code zakładki. Śmiało i powstrzymaj mnie. To nie doda żadnej warstwy bezpieczeństwa do Twojej aplikacji.

W prawym kliknięciu znajduje się wiele przydatnych menu, takich jak Kopiuj, Wklej, Wyszukaj w Google „tekst” (w Chrome) i wiele innych. Dlatego użytkownik chciałby uzyskać łatwy dostęp zamiast zapamiętywać wiele skrótów klawiaturowych. Każdy może nadal skopiować kontekst, zapisać obraz lub zrobić, co chce.

Przeglądarki używają nawigacji myszą: niektóre przeglądarki, takie jak Opera korzystają z nawigacji myszy, więc jeśli ją wyłączysz, użytkownik zdecydowanie nie znosi interfejsu użytkownika i skryptów.

To była podstawa, zamierzałem napisać więcej o zapisywaniu kodu źródłowego hehehe, ale niech to będzie odpowiedź na twoje pytanie.

Odniesienie do kodów klawiszy:

Kod przycisku myszy i myszy:

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

https://developer.mozilla.org/en-US/docs/Web/API/event.button (mile widziane również przez użytkowników).

Dlaczego nie wyłączyć prawym przyciskiem myszy:

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

Afzaal Ahmad Zeeshan
źródło
1

JavaScript:

document.getElementsByTagName("html")[0].setAttribute("oncontextmenu", "return false"); 
زياد
źródło
0

Ważna uwaga: To zależy od przeglądarki i systemu operacyjnego, aby umożliwić takie zapobieganie, czy nie!

Powinieneś to zrobić Nie . Ponieważ nie zapobiegnie to użytkownikowi, ale po prostu go zdenerwuje.

Czy możesz tego użyć? Tak . Przykłady: w niektórych aplikacjach internetowych, w których chcesz mieć dostosowane menu podręczne, w grze, w których użytkownicy mogą być zirytowani, gdy omyłkowo klikną prawym przyciskiem myszy, i w innych przypadkach.

Chrome (V65) w Ubuntu 16.04 = Ty CAN wyłączyć kliknij prawym przyciskiem myszy.

Chrome (v65) w Mac OS 10.11 = NIE MOŻNA wyłączyć kliknięcia prawym przyciskiem myszy.

Chrome (v65) w Windows 7 = NIE MOŻESZ wyłączyć kliknięcia prawym przyciskiem myszy.

Firefox (V41) w systemie Mac OS 10.11 = Ty CAN wyłączyć kliknij prawym przyciskiem myszy.

Firefox (v43) w Windows 7 = Ty CAN wyłączyć kliknij prawym przyciskiem myszy.

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

// jQuery way
$(document).bind('contextmenu', function(e) {
    e.preventDefault();
});
evilReiko
źródło
0

Kilka rzeczy do rozważenia:

Wtyczki przeglądarki, takie jak „włącz kliknięcie prawym przyciskiem myszy” w sklepie chrome istnieją z jakiegoś powodu i nie będziesz w stanie ich obejść. Istnieje DOWOLNIE NIC, co możesz zrobić, aby powstrzymać ludzi przed pobieraniem twoich treści, ponieważ dosłownie muszą je pobrać, aby mimo to zobaczyć je w przeglądarce; Ludzie próbują, ale zawsze tam jest.

Ogólnie rzecz biorąc, jeśli treść nie powinna być publiczna, nie umieszczaj jej w Internecie.

Ponadto niemożność kliknięcia prawym przyciskiem jest kwestią dostępności i w wielu przypadkach stanowi niezgodną z prawem dyskryminację osób niewidomych, niepełnosprawnych lub starszych. Sprawdź lokalne przepisy, ale w USA jest to czynne działanie niezgodne z prawem w formie federalnej ADA, ponieważ osoby niewidome lub starsze, które mogą mieć problemy ze wzrokiem, są klasą prawnie chronioną.

Więc zamiast robić to i marnować dużo czasu i wysiłku, nawet nie próbuj tego robić. Może to spowodować, że Twoja firma zostanie pozwana lub że nie przejdzie kontroli zgodności.

szczery
źródło
0

Wypróbuj ten kod, aby wyłączyć opcję sprawdzania elementu

    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
źródło
1
Dziękujemy za ten fragment kodu, który może zapewnić ograniczoną krótkotrwałą pomoc. Właściwe wyjaśnienie znacznie poprawiłoby jego długoterminową wartość, pokazując, dlaczego jest to dobre rozwiązanie problemu i uczyniłoby to bardziej użytecznym dla przyszłych czytelników z innymi podobnymi pytaniami. Proszę edytować swoją odpowiedź dodać kilka wyjaśnień, w tym założeń już wykonanych.
Toby Speight
Można to bardzo łatwo zmienić w Chrome: kliknij 3 kropki obok swojego zdjęcia profilowego> Więcej narzędzi> Narzędzia dla programistów
sportzpikachu
-1

Użyj tej funkcji, aby wyłączyć kliknięcie prawym przyciskiem. Możesz wyłączyć kliknięcie lewym przyciskiem i stuknąć również checking 1 and 0odpowiednim przyciskiem

document.onmousedown = rightclickD;
            function rightclickD(e) 
            { 
                e = e||event;
                console.log(e);
                if (e.button == 2) {
                //alert('Right click disabled!!!'); 
                 return false; }
            }
CodeBreaker
źródło
Używanie Javascript do robienia tego, co już robi HTML, to zła inżynieria i marnotrawstwo
szczery