web-dev-qa-db-fra.com

Comment désactiver le clic droit de la souris sur une page Web?

Je veux désactiver le clic droit de la souris sur une page HTML ..__ J'ai une page où l'utilisateur doit entrer les détails . Je ne veux pas que l'utilisateur voie le menu qui s'affiche avec le clic droit de la souris Je veux plutôt afficher un menu personnalisé. Je sais qu'il existe des plugins disponibles pour le faire. Mais mon exigence n'a besoin d'aucun plugin.

18
User 1034

Ce n'est pas professionnel, de toute façon cela fonctionnera avec javascript activé:

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

Vous pouvez également vouloir montrer un message à l'utilisateur avant de renvoyer false.

Cependant, je dois dire que cela ne devrait pas être fait en général, car cela limite les options des utilisateurs sans résoudre le problème (en fait, le menu contextuel peut être très facilement réactivé).

L'article suivant explique mieux pourquoi ceci ne devrait pas être fait et quelles autres actions peuvent être entreprises pour résoudre des problèmes liés courants: http://articles.sitepoint.com/article/dont-disable-right -Cliquez sur

44
Andrea Zilio

Premièrement, si vous faites cela simplement pour empêcher les gens de voir la source de votre page, cela ne fonctionnera pas, car ils pourront toujours utiliser un raccourci clavier pour la voir.

Deuxièmement, vous devrez utiliser JavaScript pour accomplir cela. Si l'utilisateur a désactivé JS, vous ne pouvez pas empêcher le clic droit.

Cela dit, ajoutez ceci à votre balise body pour désactiver les clics droits.

<body oncontextmenu="return false;">
7
romiem

Vous pouvez utiliser l'événement oncontext pour cela.

Mais si l'utilisateur désactive javascript, vous ne pourrez pas gérer cela.

window.oncontextmenu = function () {
   return false;
}

désactive le menu clic droit.

6
rahul

<body oncontextmenu="return false;"> fonctionne pour moi dans Google Chrome. Pas sûr des autres navigateurs.

Remarque: il suffit de désactiver JavaScript pour voir le menu contextuel.

6
cHao

Il y a beaucoup d'exemples de cela qui peuvent être trouvés via Google

Cependant, les utilisateurs peuvent désactiver le Javascript pour arrêter cette "fonctionnalité" très ennuyeuse. Je pense que vous devriez vraiment y penser avant de le mettre en œuvre. Cela ne protégera pas vraiment votre contenu (si c'est ce que vous essayez d'atteindre).

Il y a un article ici qui illustre à quel point c'est ennuyeux et inutile.

3
codingbadger

S'il vous plaît ne faites pas ça, c'est très énervant.

Le menu de droite est là pour une raison, et il devrait être laissé ici . De nombreuses extensions de navigateur ajoutent des entrées au menu de clic droit et l'utilisateur devrait pouvoir l'utiliser dans n'importe quelle page qu'il visite.

De plus, vous pouvez utiliser toutes les fonctionnalités du menu contextuel de différentes manières (raccourcis clavier, menu du navigateur, etc., etc.), de sorte que bloquer le menu contextuel a pour seul effet de gêner l'utilisateur.

PS: Si vraiment vous ne pouvez pas résister à l'envie de le bloquer, ne mettez pas au moins une fenêtre contextuelle disant "pas de clic droit autorisé".

1
nico
window.oncontextmenu = function () {
return false;
}

pourrait vous aider.

1
Simpal Kumar

Essayez ceci: écrivez le code ci-dessous sur le corps et ressentez la magie :)

body oncontextmenu="return false"
1
John

Vous pouvez le faire avec Javascript et/ou un attribut HTML (qui est en réalité un gestionnaire d'événements Javascript) comme décrit ici: http://www.codeproject.com/KB/aspnet/Disabling_the_right_click.aspx

<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
Function disableclick(event)
{
  if(event.button==2)
   {
     alert(status);
     return false;    
   }
}
</script>

et

<body oncontextmenu="return false">
...
</body>
0
Nikunj Aggarwal

// Désactive le script clic droit via le code Javascript

<script language=JavaScript>
//Disable right click script
var message = "";
///////////////////////////////////
function clickIE() {
    if (document.all) {
        (message);
        return false;
    }
}

function clickNS(e) {
    if (document.layers || (document.getElementById && !document.all)) {
        if (e.which == 2 || e.which == 3) {
            (message);
            return false;
        }
    }
}
if (document.layers) {
    document.captureEvents(Event.MOUSEDOWN);
    document.onmousedown = clickNS;
} else {
    document.onmouseup = clickNS;
    document.oncontextmenu = clickIE;
}

document.oncontextmenu = new Function("return false")
</script>

Cliquez ici pour voir semo

0