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?
javascript
Vinay Pandey
źródło
źródło
Odpowiedzi:
Możesz to zrobić za pomocą JavaScript, dodając detektor zdarzeń dla zdarzenia „contextmenu” i wywołując
preventDefault()
metodę: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.
źródło
oncontextmenu="return false"
czegoś innego niż ciało może mieć sens, na przykład na płótnie.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:
źródło
<body oncontextmenu="return false;">
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:
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.
Więc jeśli używasz lewego i prawego przycisku myszy w grze, będziesz musiał zastosować logikę warunkową w procedurach obsługi myszy.
źródło
dom.event.contextmenu.enabled
przeglądarki Firefox,mousedown
czymouseup
zdarzenia i będą nadal działać, nawet jeślicontextmenu
nie?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
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.
źródło
Jeśli jesteś fanem jquery, użyj tego
źródło
this
w gotowym wydarzeniu? Dlaczego używaszbind
zamiaston
? Ugh ...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!
źródło
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 -
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.
źródło
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.
źródło
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:
Ma to na celu usunięcie najprostszego sposobu zapisywania zdjęć, ale nadal można to zrobić.
źródło
źródło
dom.event.contextmenu.enabled
Zrób to jak poniżej (Działa to również w Firefoxie):
źródło
Umieść ten kod w
<head>
tagu swojej strony.Spowoduje to wyłączenie kliknięcia prawym przyciskiem myszy całej strony, ale tylko wtedy, gdy JavaScript jest włączony.
źródło
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
źródło
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.
źródło
źródło
Spróbuj tego
źródło
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:
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
źródło
źródło
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
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:
Działający sprzęt
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:
Aby kliknąć prawym przyciskiem, użyj tego:
w miejscu
event.keyCode
. I zablokujesz to.Masz rację, przeglądarki pozwalają ci używać,
JavaScript
a 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+J
otworzyłemConsole
i 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/
źródło
JavaScript:
źródło
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.
źródło
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.
źródło
Wypróbuj ten kod, aby wyłączyć opcję sprawdzania elementu
źródło
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 0
odpowiednim przyciskiemźródło