Web sayfama sağ tıklamayı nasıl devre dışı bırakabilirim?


316

JavaScript kullanmadan web sayfama sağ tıklamayı devre dışı bırakabilir miyim? Çoğu tarayıcı kullanıcının JavaScript'i devre dışı bırakmasına izin verdiği için bunu soruyorum.

Değilse, sağ tıklamayı devre dışı bırakmak için JavaScript'i nasıl kullanırım?


130
Sağ tıklamayı devre dışı bırakmak güvenlik değildir, sadece kullanıcılarınızı rahatsız eder. Bunu devre dışı bırakmanıza izin vermeyen herhangi bir tarayıcı değersizdir, ancak ilk önce bunu yapan siteler korkunçtur.
Dan Olson

17
İçeriğinizin alınmasını istemiyorsanız, web'de yayınlamamalısınız. :) Günümüzün tarayıcıları JavaScript'in sağ tıklamayı devre dışı bırakma yeteneğini bile geçersiz kılabilir. Firebug / Web Dev Araç Çubuğu gibi araçlar korumayı işe yaramaz hale getirir.
epascarello

7
Burada küçük bir krom / greesemonkey kullanıcı script sağ tıklayın yeniden etkinleştirmek: dl.dropbox.com/u/464119/Programming/javascript/...
ripper234

31
Gerçekten @ DanOlson ... kendi sağ tıklama menünüzü kodlamak istiyorsanız ne yapmalısınız? CPanel'de olduğu gibi.
Kodlayıcı

30
@epascarello kiosk terminalleri gibi sağ tıklamayı devre dışı bırakmanın gerekli olduğu bazı durumlar vardır, bceause kullanıcısı aslında orada buna ihtiyaç duymaz ve orada bırakarak kullanıcıları rahatsız edebilir
Aram

Yanıtlar:


525

Bunu, JavaScript ile "contextmenu" olayı için bir olay dinleyicisi ekleyerek ve preventDefault()yöntemi çağırarak yapabilirsiniz :

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

Olduğu söyleniyor: YAPMAYIN.

Neden? Çünkü can sıkıcı kullanıcılardan başka bir şey elde edemez. Ayrıca birçok tarayıcının yine de sağ tıklama (bağlam) menüsünün devre dışı bırakılmasına izin vermemek için bir güvenlik seçeneği vardır.

Neden yapmak istediğinden emin değilim. Kaynak kodunuzu veya resimlerinizi bu şekilde koruyabileceğinize dair yanlış bir inanca sahip değilseniz, tekrar düşünün: yapamazsınız.


86
oncontextmenu="return false"Vücuttan başka bir şey kullanmak , örneğin bir tuvalde mantıklı olabilir.
AdrienBrault

62
Kiosk makinelerine dağıtıyoruz ve kullanıcıların sayfayı yenilemesini engellemek için bu yolu seçtik.
Todd Horst

21
@ToddHorst Bu durumda, genellikle herhangi bir bağlam menüsü olmadan da kullanılabilen herhangi bir kullanıcı arayüzü olmadan tarayıcının özel bir "Kiosk" sürümünü kullanırım :)
mihi

17
Dokunmatik özellikli sistemler bazen uzun dokunma gibi belirli dokunma olaylarını sağ tıklamayla eşleştirir (ve böylece bağlam menüsünü açar). Ancak, bu davranış istenmeyen olabilir ve bunu önlemenin tek anlamlı yolu, bağlam menüsünü tamamen devre dışı bırakıyor gibi görünmektedir.
VEYA Haritacı

58
Eski Konu ama birisinin okuduğu takdirde, tüm web geliştiricileri web sitelerini kendileri için yapmazlar bazen müşteri size gelir ve doğru tıklamayı devre dışı bırakmakta ısrar eder, onu ikna etmeye çalıştığınızda bunu yapacak başka bir geliştiriciyi arayacaktır. tereddüt etmeden
Danny22

122

DO dEĞİL

Sadece yapma.

Ne yaparsanız yapın, kullanıcıların web sitenizdeki her veriye tam erişmesini engelleyemezsiniz. Kodladığınız herhangi bir Javascript, tarayıcıdaki Javascript'i kapatarak (veya NoScript gibi bir eklenti kullanarak) tartışmalı hale getirilebilir. Ayrıca, herhangi bir kullanıcının siteniz için yalnızca "kaynağı görüntüleme" veya "sayfa bilgilerini görüntüleme" (veya wget kullanma) özelliğini devre dışı bırakmanın bir yolu yoktur.

Çabaya değmez. Aslında işe yaramaz. Sitenizi kullanıcılara etkin bir şekilde düşmanca yapar. Bunu fark edecekler ve ziyaret etmeyi bırakacaklar. Bunu yapmanın bir faydası yok, sadece çaba harcama ve trafik kaybı.

Yapma.

Güncelleme: Görünüşe göre bu küçük konunun zaman içinde oldukça tartışmalı olduğu kanıtlandı. Yine de, bu sorunun cevabını bekliyorum. Bazen doğru cevap, gerçek bir yanıt yerine tavsiyedir.

Özel bağlam menülerinin nasıl oluşturulacağını bulma umuduyla bu soruya rastlayan insanlar , aşağıdaki gibi başka yerlere bakmalıdır:


230
Wow bunun kabul edilmiş bir cevap olduğuna inanamıyorum. Belirli koşullar altında bir web uygulamasında sağ tıklamayı kaldırmak için birçok geçerli kullanım vardır.
GAgnew

84
Gerçek cevap şöyle olmalıdır:<body oncontextmenu="return false;">
Sebastián Grignoli

18
@GAgnew: Bağlam menüsünü değiştirmek için geçerli kullanımlar vardır.
Sağ tıklamaları

80
Kullanıcı bir HTML5 video oyunu yapmak istiyorsa, sağ tıklamayı devre dışı bırakmak oldukça yararlı olabilir. Genellikle, bu arzu edilmez, ama sadece uygun bağlam olmadan "YAPMAYIN" demek o kadar yararlı değildir.
Robson França

51
Benden -1 de. Bu cevap yardımcı olmuyor. Sağ tıklamayı devre dışı bırakmak için birçok iyi neden vardır. Örneğin, hastanelerin ön büroda kullandığı bir web uygulaması oluşturdum ve kullanıcılar teknik açıdan bilgili değiller. Uygulama web tarayıcısında çalışıyor olsa da, sağ tıkladıklarında tüm menü seçeneklerinin neden ortaya çıktığını anlamıyorlar. Uygulamanın bir parçası olduklarını düşünen insanlardan seçeneklerin ne için olduğunu soran tonlarca yardım sorusu aldık. Onları devre dışı bırakmak bu durumda mantıklı ve diğer birçok web uygulamasında da mantıklı.
Nicholas

66

Orijinal soru, kullanıcının JavaScript'i devre dışı bırakabileceği göz önüne alındığında sağ tıklamanın nasıl durdurulacağıyla ilgiliydi : kulağa kötü ve kötü geliyor (bu nedenle olumsuz yanıtlar) - ancak yinelenenlerin çoğu daha az kötü amaç istese bile tüm kopyalar buraya yönlendiriyor.

Örneğin HTML5 oyunlarında sağ tıklama düğmesini kullanmak gibi. Bu, yukarıdaki satır içi kod ile yapılabilir veya biraz daha güzel bir şeydir:

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

Bir oyun yapıyorsanız, o zaman sağ tıklama butonu ateşler unutmayın contextmenu olayı - ama aynı zamanda düzenli ateşler mousedown ve mouseUp çok olayları. Bu nedenle, olayı tetikleyen sol (hangisi === 1), orta (hangisi === 2) veya sağ (hangisi === 3) fare düğmesi olduğunu görmek için etkinliğin hangi özelliğini kontrol etmeniz gerekir .

İşte jQuery'de bir örnek - sağ fare düğmesine basmanın üç olayı tetikleyeceğini unutmayın: mousedown olayı, contextmenu olayı ve mouseup olayı.

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

Bir oyunda sol ve sağ fare düğmelerini kullanıyorsanız, fare işleyicilerinde bazı koşullu mantık yapmanız gerekir.


dom.event.contextmenu.enabledFirefox'ta etkinleştirdiysem mousedownve mouseupolmasa bile etkinlikler devam edecek contextmenumi?
robertc

43

Her sağ tıklamaya çalıştığında kullanıcıyı bir mesajla uyarmayı umursamıyorsanız, bunu vücut etiketinize eklemeyi deneyin

<body oncontextmenu="return false;">

Bu, bağlam menüsüne tüm erişimi engelleyecektir (sadece sağ fare düğmesinden değil, aynı zamanda klavyeden de).

Bununla birlikte, diğer cevaplarda belirtildiği gibi, gerçekten sağ tıklama devre dışı bırakıcı eklemenin bir anlamı yoktur. Temel tarayıcı bilgisine sahip herkes kaynağı görüntüleyebilir ve ihtiyaç duydukları bilgileri çıkarabilir.


Evet, ancak temel tarayıcı bilgisinde eksik olduğunun farkında olduğum biriyle bir görüntüyü kısaca paylaşmak istediğim zamanlar var. Sağ tıklamayı devre dışı bırakmak% 100 kusursuz değildir, ancak görüntüyü bir kişinin görünmesine izin vermek için sadece birkaç dakika gönderiyorsam, oldukça güvenlidir.
WillO

Dokunmatik özellikli sistemler bazen uzun dokunma gibi belirli dokunma olaylarını sağ tıklamayla eşleştirir (ve böylece bağlam menüsünü açar). Ancak, bu davranış istenmeyen olabilir ve bunu önlemenin tek anlamlı yolu, bağlam menüsünü tamamen devre dışı bırakıyor gibi görünmektedir.
VEYA Haritacı

@WillO: İkram etmem gereken benzer bir kullanım durumum var, ancak FYI, kullanıcılar her zaman ekran görüntülerine başvuracaklar .
Hassan Baig

28

Jquery hayranıysanız, bunu kullanın

    $(function() {
        $(this).bind("contextmenu", function(e) {
            e.preventDefault();
        });
    }); 

4
Bu hiçbir sebepten dolayı jQuery kullanıyor. Bu, Bay Speaker'in yanıtında bulunan ve bundan 1 was yıl önce yayınlanan tek JavaScript ifadesiyle tamamen aynıdır. Bu arada, bu cevap yine ihtiyacınız olmayan bir jQuery çözümü de içeriyor. Bu cevabı iptal eden herkes bunun ne yaptığını bile biliyor mu? Neden bu, belgeye hazır olayın içerik menüsünün görünmesini engellemesini bekliyor? Bu neden thishazır etkinlik içinde kullanılıyor ? Neden bindyerine kullanıyorsun on? Ugh ...
Rudey

20

İlk olarak, bir istemci tarafı özelliği kullanmadan bunu başaramazsınız. Javascript burada çalışır.

İkinci olarak, bir son kullanıcının sitenizden neler tüketebileceğini kontrol etmeye çalışıyorsanız, bu bilgileri nasıl görüntülediğinizi yeniden düşünmeniz gerekir. Görüntünün, tarayıcıya gerek olmadan HTTP aracılığıyla getirilebilen genel bir URL'si vardır.

Kimlik doğrulama, kimlerin hangi kaynaklara erişebileceğini kontrol edebilir.

Görüntülere gömülü filigran ekleme, görüntünün belirli bir kişiden / şirketten olduğunu kanıtlayabilir.

Günün sonunda, kaynak yönetimi gerçekten kullanıcı / misafir yönetimidir.

İnternetin ilk kuralı, eğer alınmasını istemiyorsanız, halka açık yapmayın!

İnternetin ikinci kuralı, eğer alınmasını istemiyorsanız, internete koymayın!


20

Amacınız insanların çoğunun söylediği gibi resimlerinizi indirmesini önlemekse, sağ tıklamayı devre dışı bırakmak hemen hemen etkisizdir.

Görüntüleri korumaya çalıştığınızı varsayarsak, alternatif yöntemler -

Bir flash oynatıcı kullanarak kullanıcılar bunları bu şekilde indiremez, ancak kolayca ekran görüntüsü alabilirler.

Daha akıcı olmak istiyorsanız, görüntüyü saydam bir görüntü içeren bir div'ın arka planı yapın, à la -

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

resimlerinizin geçici hırsızlığını caydırmak için yeterli olacaktır (bir örnek için aşağıya bakın), ancak tüm bu tekniklerde olduğu gibi, html hakkında temel bir anlayışla yenmek önemsizdir.


2
Kodu daha da gizlemek için görüntüyü base64 olarak bile yükleyebilirsiniz.
Miguel Bartelsman

16

Javascript kullanmadan sorduğunuz şeyi başaramazsınız. Kullanmayı seçebileceğiniz diğer tüm teknolojiler, yalnızca tarayıcıya gönderilecek sunucu tarafındaki web sayfasını oluşturmaya yardımcı olabilir.

Basitçe iyi bir çözüm yoktur ve Javascript olmadan çözüm süresi yoktur.


1
Ve o zaman bile kullanıcılar için can sıkıcı, atlamak kolay bahsetmiyorum bile.
Manos Dilaverakis

1
Ben sadece 'sağ tıklama devre dışı' diyen kalıcı bir pop-up penceresi olan sayfalar gördüm, daha sonra kapattığınızda sağ tıklama menüsünü gösterir. Ayrıca, çok rahatsız edici olan izleme dörtgenini kullanarak kaydırdığınızda da mesajı görüntüler.
Pete Kirkham

1
Evet, özellikle can sıkıcı çünkü genellikle insanların sabit disklerinde bulunan görüntüleri "çalmasını" önlemek, ama tek yaptığı şey Bağlam Araması'nı kullanmamı engellemek: addons.mozilla.org/en-US/firefox/addon/240 . Bu piçler ...
Calvin

2
Bunun hemen hemen her cevabının "Tabii, javascript kullanın!"
Charles Wood

14

Amacınız, kullanıcıların resimlerinizi kaydetmelerine izin vermemekse, tıklanan hedefin bir resim olup olmadığını da kontrol edebilirsiniz, bu durumda yalnızca sağ tıklamayı devre dışı bırakın. Bu yüzden sağ tıklama başka amaçlar için kullanılabilir. Yukarıdaki koddan alınmıştır:

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

Bu sadece görüntülerinizi kaydetmenin en kolay yolunu almaktır, ancak yine de yapılabilir.


Bu benim görüşüme göre gitmek için en iyi yoldur - bir web kullanıcısı olarak zaman zaman doğru tıklama işlevselliğini yararlı ama kolay, basit (ve evet, kolayca yenilebilir) bir çözüm olarak bu can sıkıcı olmadan çalışır.
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>



2
@ aravind3 Ben senin örneğini kullandım ve bir tedavi çalışıyor! Resimlerim yine de tıklanabilir ve olması gerektiği gibi çalışıyor, ancak indirilemiyor. Sağ tıklamayı devre dışı bırakmak istememin nedeni, yalnızca bir görüntü isteyen ve hemen ardından ayrılan ziyaretçilerin hemen çıkma oranımı etkilemesidir. En azından bu şekilde, hemen çıkma oranım o kadar kötü olmayacak, çünkü onları anlamak için 1 veya 2 dakika sürebilir :) Şerefe aravind3 !!!!
coolydude

6

Aşağıdaki gibi yapın (Firefox'ta da çalışır):

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

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

5

Bu kodu sayfanızın <head>etiketine yerleştirin.

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

Bu, tüm web sayfanızda sağ tıklamayı devre dışı bırakır, ancak yalnızca JavaScript etkinleştirildiğinde.


Bu, Firefox'ta çalışmaz ve form yazmak için giriş seçimini devre dışı bırakır :(
ALWAN

5

Herhangi bir web sayfasında sağ tıklamayı devre dışı bırakmak için bu kodu kullanmıştım, iyi çalışıyor. Bu kodu kullanabilirsiniz

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>


4

Tabii ki, burada diğer tüm yorumlara göre, bu sadece işe yaramaz.

Bir keresinde ekran yakalama yoluyla herhangi bir görüntünün yakalanmasını zorlayan bir istemci için basit bir java uygulaması oluşturdum ve benzer bir tekniği düşünmek isteyebilirsiniz. Sınırlamalar dahilinde işe yaradı, ama yine de zaman kaybı olduğunu düşünüyorum.


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

3

Bunu dene

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


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

2

Geç kaldığımı biliyorum, ancak vereceğim cevap için bazı varsayımlar ve açıklamalar oluşturmak istiyorum.

Sağ tıklamayı devre dışı bırakabilir miyim

Javascript kullanmadan web sayfama sağ tıklamayı devre dışı bırakabilir miyim?

Evet, JavaScript kullanarak gerçekleşen herhangi bir etkinliği devre dışı bırakabilirsiniz ve bunu çoğunlukla javaScript ile yapabilirsiniz. Nasıl, tek ihtiyacınız olan:

  1. Çalışan bir donanım

  2. Bir web sitesi veya anahtar kodlar hakkında bilgi edinebileceğiniz bir yer. Çünkü onlara ihtiyacın olacak.

Şimdi enter tuşuna basmak istediğinizi söyleyelim.

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

Sağ tıklama için şunu kullanın:

event.button == 2

yerine event.keyCode. Ve onu engelleyeceksin.

Bunu sormak istiyorum çünkü çoğu tarayıcı kullanıcıların Javascript ile devre dışı bırakmasına izin veriyor.

Haklısınız, tarayıcılar kullanmanıza izin veriyor JavaScriptve javascript tüm işi sizin için yapıyor. Herhangi bir şey ayarlamanız gerekmez, sadece kafadaki script özelliğine ihtiyacınız vardır.

Neden devre dışı bırakmamalısınız?

Bunun ana ve hızlı cevabı, kullanıcılar hoşuna gitmeyecek . Herkesin özgürlüğe ihtiyacı var. Kaynak kodunuzu korumanız gerekiyor mu? Sonra burada ctrl+shift+Jaçtım Consoleve şimdi HTML-codesekmeye gidebilirim . Devam et ve beni durdur. Bu, uygulamanıza güvenlik katmanının hiçbirini eklemez.

Sağ Tıklama'da Kopyala, Yapıştır, Google'da 'metin' (Chrome'da) ara ve çok daha fazlası gibi birçok kullanıcı menüsü vardır. Bu nedenle, kullanıcı çok sayıda klavye kısayolunu hatırlamak yerine erişim kolaylığı elde etmek istiyor. Herkes yine de içeriği kopyalayabilir, resmi kaydedebilir veya istediği her şeyi yapabilir.

Tarayıcılar Fare Gezinme kullanır : Opera gibi bazı tarayıcılar fare gezinme kullanır, bu nedenle devre dışı bırakırsanız kullanıcı Kullanıcı Arabiriminizden ve komut dosyalarından kesinlikle nefret eder.

Bu temel bir şeydi, hehehe kaynak kodunu kaydetme hakkında biraz daha yazacaktım, ama sorunuzun cevabı olsun.

Anahtar kodlara referans:

Anahtar ve fare düğmesi kodu:

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

https://developer.mozilla.org/en-US/docs/Web/API/event.button (kullanıcılar tarafından da takdir edilecektir).

Neden sağ tıklamayı devre dışı bırakmıyorsunuz:

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


1

JavaScript:

document.getElementsByTagName("html")[0].setAttribute("oncontextmenu", "return false"); 

0

Önemli Not: Bu tür bir önleme izin vermek ya da vermemek tarayıcı ve işletim sistemine bağlıdır !

Meli sen yap? Hayır . Çünkü kullanıcıyı engellemez, sadece onu rahatsız eder.

Kullanabilir misin? Evet . Örnekler: Özelleştirilmiş açılır menüye sahip olmak istediğiniz bazı web uygulamalarında, kullanıcıların yanlışlıkla sağ tıkladıklarında rahatsız edilebilecekleri oyun içi ve diğer durumlar.

Ubuntu 16.04 Chrome (V65) = Sen CAN sağ tıklayın devre dışı bırakın.

Krom Mac OS 10.11 de (V65) = Sen CAN NOT devre dışı sağ tıklama.

Windows 7'de Krom (V65) = Sen CAN NOT devre dışı sağ tıklama.

Firefox Mac OS 10.11 de (v41) = Sen CAN sağ tıklayın devre dışı bırakın.

Windows 7'de Firefox (V43) = Sen CAN sağ tıklayın devre dışı bırakın.

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

// jQuery way
$(document).bind('contextmenu', function(e) {
    e.preventDefault();
});

0

Dikkate alınması gereken birkaç nokta:

Chrome mağazasında "sağ tıklamayı etkinleştir" gibi Tarayıcı Eklentileri bir nedenden dolayı var ve bunların etrafında dolaşamayacaksınız. İnsanların içeriğinizi indirmesini durdurmak için yapabileceğiniz bir şey yok, çünkü gerçekten de tarayıcılarında görmek için onu indirmek zorundalar; İnsanlar dener ama her zaman dışarıdadır.

Genel olarak, içerik herkese açık değilse, çevrimiçi yapmayın.

Ayrıca, sağ tıklayamamak bir erişilebilirlik sorunudur ve birçok durumda kör veya engelli veya yaşlılara karşı yasadışı ayrımcılık anlamına gelir. Yerel yasaları kontrol edin, ancak ABD'de aktif olarak yasalara karşı Federal ADA şeklinde kör veya görme sorunları olabilecek yaşlılar yasal olarak korunan bir sınıftır.

Bu yüzden bunu yapmak ve çok fazla zaman ve çaba harcamak yerine, bunu yapmaya bile uğraşmayın. Bu sadece şirketinizi dava ettirebilir veya bir uyumluluk denetiminde başarısız olabilir.


0

Eleman inceleme seçeneğini devre dışı bırakmak için bu kodu deneyin

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

1
Kısa süreli sınırlı yardım sağlayabilecek bu kod snippet'i için teşekkür ederiz. Düzgün bir açıklama , bunun neden problem için iyi bir çözüm olduğunu göstererek uzun vadeli değerini büyük ölçüde artıracak ve diğer benzer sorularla gelecekteki okuyucular için daha yararlı hale getirecektir. Yaptığınız varsayımlar dahil bazı açıklamalar eklemek için lütfen yanıtınızı düzenleyin .
Toby Speight

Chrome'da bunu geçersiz kılmak son derece kolay olabilir : Profil resminizin yanındaki 3
noktayı

-1

Sağ tıklamayı devre dışı bırakmak için bu işlevi kullanın. Sol tıklamayı devre dışı bırakabilir ve checking 1 and 0karşılık gelen

document.onmousedown = rightclickD;
            function rightclickD(e) 
            { 
                e = e||event;
                console.log(e);
                if (e.button == 2) {
                //alert('Right click disabled!!!'); 
                 return false; }
            }

HTML'nin zaten yaptığı şeyi yapmak için Javascript kullanmak kötü mühendislik ve
israftır
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.