Membre de ClickFR, Reseau francophone Paie-Par-Click
Accueil
Accueil
- [ CSS : ] [ DHTML : ] [ HTML : ] [ JavaScript : ] [ Refs : ]
Accueil

JavaScript 1.3

  Intercepter le 'clic-droit'

fonction de ce script  principe de ce script  le script lui-meme  demonstration du script  telechargement du script

  Fonction
Le but de ce script est d'intercepter ce qu'on appelle communément le 'Clic-droit', ou Control-Clic sur Mac. En effet, celui-ci permet d'afficher le source de la page, d'enregistrer une image... on peut vouloir le 'limiter'.
L'esprit d'Internet étant tout de même le partage, rappelons-le ;-)
  Principe
Il va falloir agir séparément pour Internet Explorer et pour Netscape. En effet, ils ne gèrent pas la chose de la même façon.
  1. Internet Explorer : Grâce à l'instruction 'document.oncontextmenu', on capture directement le fameux clic-droit (menu contextuel), il suffit donc de lancer une fonction si on a détecté le 'clic-droit'.
    Ici, un simple message d'alerte, mais libre à vous de lancer ce que vous souhaitez ;-)
  2. Netscape : Le 'menu contextuel' n'existe pas selon Netscape, il utilise la fonction réelle du Javascript qui est 'document.captureEvents(Event.MOUSEDOWN)' où il s'agit d'intercepter en premier lieu l'événement 'clic' puis de l'analyser.
    Les boutons de la souris sont numérotés (si-si ;-), de 1 à 3, se basant sur les souris à 3 boutons. Le clic-droit est donc le troisième bouton. Pour repérer le bouton utilisé, JavaScript intègre l'attribut 'which', on teste donc si ce 'which' est égal à '3' !
    Ceux d'entre-vous qui connaissent les Macs savent que la souris Apple n'a qu'un bouton... Mais les menus contextuels existent quand même !! Ils sont accessible par un 'Control + clic'. Il nous faut donc vérifier que lors du clic, une touche de modification, la touche 'Control' ici, n'était pas enfoncée. C'est l'objet de la deuxième partie de la fonction pour Netscape. La vérification des touches du clavier passe par 'modifiers'. Et il se trouve que comme les boutons de la souris, les touches de modification ont un numéro... (voir ci-dessous). On va donc tout simplement tester l'appui sur la touche 'Control'.
Attention, Internet Explorer ne reconnait pas l'instruction 'modifiers', ce qui signifie qu'il est impossible de bloquer le 'Control + clic' si le visiteur utilise Internet Explorer sur Macintosh !!

Touches Numéro
Alt (option) 1
Control 2
Majuscule 4
Command (Mac) 8
Si on appuie simultanément sur 'Alt' et 'Control', on obtient '3' (1 + 2), de même si on appuie simultanément sur 'Control' et 'Command', on obtient '10' (2 + 8)...
  Le script
dans la partie <head>
<script language="JavaScript">
// en fonction du navigateur...
if ( document.all ) {

// sur Internet Explorer on intercepte le 'Menu Contextuel'
document.oncontextmenu = clic_droit;
}
if ( document.layers ) {

// sur Netscape on intercepte le clic de la souris pour l'analyser ensuite...
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = clic_droit;
}


function clic_droit(evenement) {

// action pour Internet Explorer (sur 'Menu Contextuel')
if ( document.all ) {
alert('Vous utilisez Internet Explorer sur PC');
return false;
}
else if ( document.layers ) {

// pour Netscape, si le clic a été effectué sur le bouton droit (which == 3)
if ( evenement.which == 3 ) {
alert('Vous utilisez Netscape sur PC');
return false;
}

// si le clic standard a été accompagné d'une touche (touche 2 = Control, nécessaire pour le 'clic-droit' sur les souris à 1 bouton des Macs)
if ( evenement.modifiers == 2 ) {
alert('Vous utilisez Netscape sur Mac');
return false;
}
}
return true;
}
</script>
  Démonstration
Faîtes un 'clic-droit' ou 'Control + clic' n'importe où sur cette page...
  Téléchargement
Ce script est disponible en deux versions :
  • le script est intégré à la page où il agit,
  • le script est dans un fichier séparé de la page où il agit (fichier.js et fichier.html).

    L'intérêt d'un script dans un fichier séparé est de pouvoir le partager entre plusieurs pages html.
    Cela permet aussi de le rendre inaccessible à toute personne qui souhaiterai l'enregistrer pour une autre utilisation.
  • Script intégré :
    div_clic_droit.zip
    2 Ko
    telechargez le script telechargez le script
    Script séparé :
    div_clic_droit2.zip
    2 Ko
    Recherche
    aide sur la recherche
    hit-parade
    Votez TOP Ouaibe !

    statistiques
    aide sur les contacts aide sur la mailing-list aide sur la newsletter