Puis-je désactiver le clic droit sur ma page Web sans utiliser JavaScript? Je pose cette question car la plupart des navigateurs permettent à l'utilisateur de désactiver JavaScript.
Sinon, comment utiliser JavaScript pour désactiver le clic droit?
Puis-je désactiver le clic droit sur ma page Web sans utiliser JavaScript? Je pose cette question car la plupart des navigateurs permettent à l'utilisateur de désactiver JavaScript.
Sinon, comment utiliser JavaScript pour désactiver le clic droit?
Réponses:
Vous pouvez le faire avec JavaScript en ajoutant un écouteur d'événement pour l'événement "contextmenu" et en appelant la preventDefault()méthode:
document.addEventListener('contextmenu', event => event.preventDefault());
Cela étant dit: NE LE FAITES PAS.
Pourquoi? Parce qu'il ne fait rien d'autre que des utilisateurs ennuyeux. De nombreux navigateurs ont également une option de sécurité pour interdire de toute façon la désactivation du menu contextuel (clic droit).
Je ne sais pas pourquoi tu voudrais. Si vous pensez par erreur que vous pouvez protéger votre code source ou vos images de cette façon, détrompez-vous: vous ne pouvez pas.
oncontextmenu="return false"autre chose que le corps peut avoir du sens, par exemple sur une toile.
NE PAS
Mais non.
Quoi que vous fassiez, vous ne pouvez pas empêcher les utilisateurs d'avoir un accès complet à chaque bit de données de votre site Web. Tout Javascript que vous codez peut être rendu théorique en désactivant simplement Javascript sur le navigateur (ou en utilisant un plugin comme NoScript). De plus, il n'y a aucun moyen de désactiver la capacité d'un utilisateur à simplement "afficher la source" ou "afficher les informations sur la page" (ou utiliser wget) pour votre site.
Ça ne vaut pas la peine. Cela ne fonctionnera pas vraiment. Cela rendra votre site activement hostile aux utilisateurs. Ils le remarqueront et cesseront de visiter. Il n'y a aucun avantage à faire cela, seulement un effort gaspillé et une perte de trafic.
Non.
Mise à jour: Il semble que ce petit sujet se soit avéré assez controversé au fil du temps. Néanmoins, je maintiens cette réponse à cette question. Parfois, la bonne réponse est un conseil plutôt qu'une réponse littérale.
Les personnes qui trébuchent sur cette question dans l'espoir de découvrir comment créer des menus contextuels personnalisés devraient regarder ailleurs, comme ces questions:
<body oncontextmenu="return false;">
La question initiale était de savoir comment arrêter le clic droit étant donné que l'utilisateur peut désactiver JavaScript : ce qui semble néfaste et mauvais (d'où les réponses négatives) - mais tous les doublons redirigent ici, même si beaucoup de doublons demandent à des fins moins malveillantes.
Comme utiliser le bouton droit de la souris dans les jeux HTML5, par exemple. Cela peut être fait avec le code en ligne ci-dessus, ou un peu plus joli est quelque chose comme ceci:
document.addEventListener("contextmenu", function(e){
e.preventDefault();
}, false);
Mais si vous créez un jeu, n'oubliez pas que le bouton droit de la souris déclenche l' événement de menu contextuel - mais il déclenche également la souris et le souris événements de . Donc , vous devez vérifier les événements de la qui la propriété pour voir si elle était la gauche (qui === 1), bouton central de la souris (dont 2 ===), ou à droite (dont 3 ===) qui tire l'événement.
Voici un exemple dans jQuery - notez que le fait d'appuyer sur le bouton droit de la souris déclenchera trois événements: l'événement mousedown, l'événement contextmenu et l'événement mouseup.
// 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);
}
});
Donc, si vous utilisez les boutons gauche et droit de la souris dans un jeu, vous devrez faire une logique conditionnelle dans les gestionnaires de souris.
dom.event.contextmenu.enableddans Firefox, les événements mousedownet mouseupcontinueront-ils de se déclencher même si ce contextmenun'est pas le cas?
Si vous ne souhaitez pas alerter l'utilisateur avec un message chaque fois qu'il essaie de faire un clic droit, essayez de l'ajouter à votre balise body
<body oncontextmenu="return false;">
Cela bloquera tout accès au menu contextuel (pas seulement à partir du bouton droit de la souris mais aussi du clavier).
Cependant, comme mentionné dans les autres réponses, il est vraiment inutile d'ajouter un désactivateur de clic droit. Toute personne possédant des connaissances de base sur les navigateurs peut afficher la source et extraire les informations dont elle a besoin.
Si vous êtes un fan de jquery, utilisez ceci
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
thisà l'intérieur de l'événement Ready? Pourquoi utilisez-vous bindau lieu de on? Ugh ...
Tout d'abord, vous ne pouvez pas y parvenir sans utiliser une fonctionnalité côté client. C'est là que s'exécute le javascript.
Deuxièmement, si vous essayez de contrôler ce qu'un utilisateur final peut consommer de votre site, vous devez repenser la façon dont vous affichez ces informations. Une image a une URL publique qui peut être récupérée via HTTP sans avoir besoin d'un navigateur.
L'authentification peut contrôler qui a accès à quelles ressources.
Le filigranage intégré dans les images peut prouver que l'image provient d'une personne / entreprise spécifique.
En fin de compte, la gestion des ressources est vraiment une gestion utilisateur / invité.
La première règle d'Internet, si vous ne voulez pas qu'elle soit prise, ne la rendez pas publique!
La deuxième règle d'Internet, si vous ne voulez pas qu'elle soit prise, ne la mettez pas sur Internet!
Si votre objectif est d'empêcher les gens de télécharger vos images, comme la plupart des gens l'ont dit, la désactivation du clic droit est à peu près inefficace.
En supposant que vous essayez de protéger les images, les méthodes alternatives sont -
À l'aide d'un lecteur flash, les utilisateurs ne peuvent pas les télécharger en tant que tels, mais ils pourraient facilement faire une capture d'écran.
Si vous voulez être plus maladroit, faites de l'image l'arrière-plan d'une div, contenant une image transparente, à la -
<div style="background-image: url(YourImage.jpg);">
<img src="transparent.gif"/>
</div>
sera suffisant pour dissuader le vol occasionnel de vos images (voir ci-dessous pour un exemple), mais comme avec toutes ces techniques, il est trivial de vaincre avec une compréhension de base du html.
Vous ne pouvez pas accomplir ce que vous demandez sans utiliser Javascript. Toute autre technologie que vous pouvez choisir d'utiliser ne peut que contribuer à la composition de la page Web côté serveur à envoyer au navigateur.
Il n'y a tout simplement pas de bonne solution, et il n'y a pas de période de solution sans Javascript.
Si votre objectif est d'empêcher les utilisateurs de simplement enregistrer vos images, vous pouvez également vérifier si la cible cliquée est une image, désactivez uniquement le clic droit dans ce cas. Le clic droit peut donc être utilisé à d'autres fins. Tiré du code ci-dessus:
document.addEventListener("contextmenu", function(e){
if (e.target.nodeName === "IMG") {
e.preventDefault();
}
}, false);
C'est juste pour supprimer le moyen le plus simple de sauvegarder vos images, mais cela peut toujours être fait.
<!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>
Mettez ce code dans votre <head>balise de votre page.
<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>
Cela désactivera le clic droit sur l'ensemble de votre page Web, mais uniquement lorsque JavaScript est activé.
J'avais utilisé ce code pour désactiver le clic droit dans n'importe quelle page Web, cela fonctionne bien. Vous pouvez utiliser ce code
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>
Bien sûr, comme pour tous les autres commentaires ici, cela ne fonctionne tout simplement pas.
J'ai fait une fois une simple applet java pour un client qui a forcé toute capture d'une image à se faire via une capture d'écran et vous aimeriez peut-être envisager une technique similaire. Cela a fonctionné, dans les limites, mais je pense toujours que c'était une perte de temps.
Essaye ça
<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>
La désactivation du clic droit sur votre page Web est simple. Il n'y a que quelques lignes de code JavaScript qui feront ce travail. Voici le code JavaScript:
$("html").on("contextmenu",function(e){
return false;
});
Dans le code ci-dessus, j'ai sélectionné la balise. Après avoir ajouté seulement ces trois lignes de code, cela désactivera le clic droit sur votre page Web.
Source: désactiver le clic droit, copier, couper sur la page Web à l'aide de jQuery
$(document).ready(function () {
document.oncontextmenu = document.body.oncontextmenu = function () { return false; }
});
Je sais que je suis en retard, mais je veux créer quelques hypothèses et explications pour la réponse que je vais fournir.
Puis-je désactiver le clic droit sur ma page Web sans utiliser Javascript?
Oui, en utilisant JavaScript, vous pouvez désactiver tout événement qui se produit et vous ne pouvez le faire que principalement par javaScript. Comment, tout ce dont vous avez besoin est:
Un matériel fonctionnel
Un site Web ou un endroit à partir duquel vous pouvez en apprendre davantage sur les codes clés. Parce que tu vas en avoir besoin.
Disons maintenant que vous voulez bloquer la touche Entrée, voici le code:
function prevententer () {
if(event.keyCode == 13) {
return false;
}
}
Pour le clic droit, utilisez ceci:
event.button == 2
à la place de event.keyCode. Et vous le bloquerez.
Je veux poser cette question car la plupart des navigateurs permettent aux utilisateurs de le désactiver par Javascript.
Vous avez raison, les navigateurs vous permettent d'utiliser JavaScriptet javascript fait tout le travail pour vous. Vous n'avez pas besoin de configurer quoi que ce soit, il vous suffit de l'attribut de script dans la tête.
La réponse principale et rapide à cela serait que les utilisateurs ne l'aimeront pas . Tout le monde a besoin de liberté, personne, je veux dire, personne ne veut être bloqué ou désactivé, il y a quelques minutes j'étais sur un site qui m'avait empêché de faire un clic droit et je me suis dit pourquoi? Avez-vous besoin de sécuriser votre code source? Alors là ctrl+shift+Jj'ai ouvert le Consoleet maintenant je peux aller àHTML-code onglet. Allez-y et arrêtez-moi. Cela n'ajoutera aucune couche de sécurité à votre application.
Il y a beaucoup de menus utiles dans le clic droit, comme Copier, Coller, Rechercher Google pour «texte» (dans Chrome) et bien d'autres. Ainsi, l'utilisateur souhaite obtenir un accès facile au lieu de se souvenir de nombreux raccourcis clavier. Tout le monde peut toujours copier le contexte, enregistrer l'image ou faire ce qu'il veut.
Les navigateurs utilisent la navigation par souris: certains navigateurs comme Opera utilisent la navigation par souris, donc si vous la désactivez, l'utilisateur détesterait certainement votre interface utilisateur et les scripts.
C'était donc la base, j'allais écrire un peu plus sur la sauvegarde du code source hehehe mais, que ce soit la réponse à votre question.
Code de la clé et du bouton de la souris:
http://www.w3schools.com/jsref/event_button.asp
https://developer.mozilla.org/en-US/docs/Web/API/event.button (serait également apprécié par les utilisateurs).
Pourquoi ne pas désactiver le clic droit:
Remarque importante: Cela dépend du navigateur et du système d' exploitation pour permettre une telle prévention ou non!
Devriez- vous le faire? Non . Parce que cela n'empêchera pas l'utilisateur, mais cela ne fera que l'ennuyer.
Pouvez-vous l'utiliser? Oui . Exemples: dans certaines applications Web où vous souhaitez avoir un menu contextuel personnalisé, dans le jeu où les utilisateurs peuvent être ennuyés lorsqu'ils font un clic droit par erreur, et dans d'autres cas.
Chrome (v65) dans Ubuntu 16.04 = You CAN désactiver le clic droit.
Chrome (v65) dans Mac OS 10.11 = VOUS NE POUVEZ PAS désactiver le clic droit.
Chrome (v65) dans Windows 7 = vous NE POUVEZ PAS désactiver le clic droit.
Firefox (v41) sous Mac OS 10.11 = Vous POUVEZ désactiver le clic droit.
Firefox (v43) dans Windows 7 = Vous POUVEZ désactiver le clic droit.
// Vanilla JS way
document.addEventListener('contextmenu', function(e){
e.preventDefault();
});
// jQuery way
$(document).bind('contextmenu', function(e) {
e.preventDefault();
});
Quelques points à considérer:
Les plugins de navigateur tels que "activer le clic droit" dans la boutique Chrome existent pour une raison, et vous ne pourrez pas les contourner. Il n'y a RIEN LITTÉRAL que vous pouvez faire pour empêcher les gens de télécharger votre contenu car ils doivent littéralement le télécharger pour le voir même dans leur navigateur de toute façon; Les gens essaient mais c'est toujours là.
En général, si le contenu ne doit pas être public, ne le mettez pas en ligne.
De plus, le fait de ne pas pouvoir faire un clic droit est un problème d'accessibilité et équivaut à une discrimination illégale à l'égard des aveugles, des handicapés ou des personnes âgées dans de nombreux cas. Vérifiez les lois locales, mais aux États-Unis, c'est activement contre la loi sous la forme de l'ADA fédéral, car les aveugles ou les personnes âgées qui peuvent avoir des problèmes de vision sont une classe légalement protégée.
Donc, au lieu de faire cela et de perdre beaucoup de temps et d'efforts, ne vous embêtez même pas à essayer de le faire. Cela pourrait simplement faire poursuivre votre entreprise ou lui faire échouer un audit de conformité.
Essayez ce code pour désactiver l'option d'inspection des éléments
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
};
});
Utilisez cette fonction pour désactiver le droit click.You peut désactiver le clic gauche et appuyez sur aussi checking 1 and 0correspondant
document.onmousedown = rightclickD;
function rightclickD(e)
{
e = e||event;
console.log(e);
if (e.button == 2) {
//alert('Right click disabled!!!');
return false; }
}