46 votes

Comment empêcher l'option du clic droit en utilisant jquery

Est-il possible d'empêcher l'option CLIQUE DROIT pour les images que nous utilisons dans les pages web.

8 votes

Je suis normalement agacé par les gens qui s'interrogent sur mes motivations au lieu de répondre à la question, mais voulez-vous vraiment détourner le clic droit de la souris d'un utilisateur ? S'ils veulent obtenir vos images, ils les obtiendront d'une manière ou d'une autre... Firebug ou simplement regarder la source suffirait à obtenir un lien direct vers n'importe laquelle de vos images.

2 votes

Essayez-vous d'empêcher quelqu'un de télécharger vos images ? Dans ce cas, vous pouvez pratiquement l'oublier, car pour apparaître dans un navigateur, l'image doit être copiée sur le client et sera, dans la plupart des cas, stockée quelque part sur votre disque. De plus, la plupart des navigateurs incluent une option de configuration pour empêcher la manipulation des menus contextuels : Exemple pour Firefox .

2 votes

Il serait peut-être utile de préciser POURQUOI vous essayez de désactiver le clic droit. Si vous pensez protéger vos images, détrompez-vous : vous ne faites que dissuader les analphabètes de l'informatique (ce qui n'est pas sans intérêt).

138voto

Peeter Points 4580
$(document).ready(function() {
    $("img").on("contextmenu",function(){
       return false;
    }); 
}); 

Exemple de travail : http://jsfiddle.net/vak9exyk/

0 votes

Voici comment je l'ai étendu afin d'ajouter une difficulté supplémentaire pour les utilisateurs de Mac. jsfiddle.net/codedog/uKmDX

4 votes

Honnêtement, je n'aime pas l'idée d'empêcher les clics droits sur une image.

0 votes

Nous sommes maintenant les complices d'un interweb pire que le nôtre.

17voto

Abdul Kader Points 3590

Je pense que cela devrait aider. L'astuce consiste à lier l'événement contextuel du menu.

<script type="text/javascript" language="javascript">
        $(function() {
            $(this).bind("contextmenu", function(e) {
                e.preventDefault();
            });
        }); 
</script>

0 votes

$(this) c'est ce que je cherchais, merci ! En outre .bind() est déprécié, utiliser .on() au lieu de

0 votes

Merci. $(this) a également résolu mon cas. Excellente réponse !

8voto

Amit mishra Points 97

<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false" >

Définissez ces attributs dans la balise sélectionnée

Voir ici Exemple de travail - https://codepen.io/Developer_Amit/pen/drYMMv

Pas besoin de JQuery (comme)

6voto

anu Points 4002
$(document).ready(function() {

    $(document)[0].oncontextmenu = function() { return false; }

    $(document).mousedown(function(e) {
        if( e.button == 2 ) {
            alert('Sorry, this functionality is disabled!');
            return false;
        } else {
            return true;
        }
    });
});

Si vous souhaitez le désactiver uniquement sur les images, cliquez sur le bouton au lieu de $(document).mousedown utiliser $("#yourimage").mousedown

0 votes

Merci anu, comme je l'ai dit plus haut... cela empêche le clic droit pour toute la page, je n'ai besoin que de l'image...

4voto

JoyGuru Points 1467

Le code suivant désactive le clic droit de la souris à partir d'une page complète.

$(document).ready(function () {
   $("body").on("contextmenu",function(e){
     return false;
   });
});

Le tutoriel complet et la démo sont disponibles ici - Désactiver le clic droit de la souris à l'aide de jQuery

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