 |
Publicité
|
Cet article vous décrit le code javascript permettant d'inhiber l'affichage du menu contextuel apparaissant lorsque vous cliquez avec le bouton droit de la souris sur une page HTML. A la place, une boîte de dialogue apparaît avec un message que vous aurez préalablement défini dans le code javascript.
Cette fonctionnalité est particulièrement intéressante lorsque vous voulez protéger les images présentes dans vos pages HTML.
Tout le code javascript détaillé par la suite doit être déclaré dans l'entête de votre page HTML, entre les balises <HEAD> et </HEAD>. Je vous rappelle que la déclaration d'un code javascript commence par :
<script language="JavaScript" type="text/javascript">
<!--
Et, il doit se teminer par :
//-->
</script>
Le code javascript commence par la déclaration des variables :
var message = "Clic droit non autorisé!"
var ns4 = (document.layers)? true:false; //NS 4
var ie4 = (document.all)? true:false; //IE 4
var dom = (document.getElementById)? true:false; //DOM
La variable "message" contient le texte qui sera affiché lorsque l'on cliquera sur le bouton droit de la souris. Vous pouvez donc afficher Les variables ns4, ie4 et dom permettent de faire la distinction entre les différents navigateurs.
Après avoir déclaré les variables, on définit le comportement du navigateur sur un événement clic de souris :
if (dom)
{
if (document.addEventListener)
document.addEventListener("mouseup",RightMouseDisable,false);
else
document.oncontextmenu = IsForbidden;
}
else if (ie4)
{
document.onkeydown = CheckKey;
document.onmousedown = RightMouseDisable;
}
else if (ns4)
{
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = RightMouseDisable;
}
On remarque que la capture d'un événement est différente suivant le type de navigateur. Enfin, on définit les fonctions associées à la capture d'événement :
function CheckKey()
{
var MyKey = event.keyCode;
if (MyKey==93)
{
var MyValue = IsForbidden;
return false;
}
}
function RightMouseDisable(e)
{
var MyNumber=0;
if (ie4)
MyNumber = event.button;
else
MyNumber = e.which;
if (MyNumber==2||MyNumber==3)
{
var MyValue = IsForbidden();
return false;
}
else
return true;
}
function IsForbidden()
{
alert(message);
return false;
}
CheckKey permet de vérifier si une touche correspondante à un clic droit de souris n'a pas été utilisée (uniquement pour ie4).
RightMouseDisable permet de vérifier si c'est le bouton droit de la souris qui a été utilisé (uniquement pour ie4 et ns4+).
IsForbidden affiche le message de dissuasion dans une boite de dialogue.
Si vous souhaitez télécharger un exemple d'utilisation de ce script cliquez ici.
|