73 votes

Désactiver le clic droit sur les images avec jquery

Je veux savoir comment désactiver le clic droit sur les images avec jQuery.

Je ne connais que ceci:

 <script type="text/javascript" language="javascript">
    $(document).ready(function() {
        $(document).bind("contextmenu",function(e) {
           return false;
        });
    }); 
</script>
 

156voto

Jacob Relkin Points 90729

Cela marche:

 $('img').bind('contextmenu', function(e) {
    return false;
}); 
 

exemple jsFiddle

11voto

yopefonic Points 312

quel est votre but de la désactivation du clic droit. problème avec n'importe quelle technique est qu'il y a toujours un moyen d'aller autour d'eux. la console de firefox (firebug) et chrome permettre la déliaison de l'événement. ou si vous voulez que l'image soit protégée, on pourrait toujours il suffit de prendre un coup d'oeil à leurs temporaire de cache pour les images.

Si vous voulez créer votre propre menu contextuel de la preventDefault est très bien. Il suffit de choisir vos batailles. pas même une grande bibliothèque JavaScript comme tnyMCE fonctionne sur tous les navigateurs... et ce n'est pas parce qu'il n'est pas possible ;-).

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

Personnellement je suis plus pour un internet ouvert. Natif du navigateur comportement ne doit pas être entravée par les pages des interactions. Je suis sûr que d'autres moyens peuvent être trouvés à interagir qui ne sont pas le clic droit.

8voto

Prince Antony G Points 688

Pour désactiver l'option clic droit

 <script type="text/javascript">
    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>
 

7voto

Emz Points 61

En chrome et firefox, les méthodes ci-dessus ne fonctionnaient que si j'utilisais 'live' au lieu de 'bind'.

Cela a fonctionné pour moi:

 $('img').live('contextmenu', function(e){
    return false;
});
 

2voto

EZDC Points 372

Serait-il possible de laisser la possibilité de cliquer avec le bouton droit de la souris et de télécharger juste à la fin, un filigrane séparé est placé sur l'image. Bien sûr, cela n'empêchera pas les captures d'écran, mais je pense que cela pourrait être un bon compromis.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X