11524 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
J'ai un petit soucie, je sais je suis toujours encore assez null lol
j'ai une petit code tout bête


<input onclick='selectMe(1)' oncontextmenu='selectMe(2)' type='image' src='test.png' border='0' name='submit' />


avec un javascript


var ctrlKeyCode = 17;
var cntrlIsPressed = false;

document.addEventListener('keydown', function(event){
    if(event.which=="17")
        cntrlIsPressed = true;
});

document.addEventListener('keyup', function(){
    if(event.which=="17")
        cntrlIsPressed = true;
});

function selectMe(mouseButton){
    if(cntrlIsPressed){
        switch(mouseButton){
            case 1:
                alert("Ctrl + Clique Gauche détécté, Tu essaye de triché !") ;
                window.location.reload();
                break;
                
            case 2:
                alert("Cntrl + right click");
                break;
            default:
                break;
        }
    }
}


le script fonctionne très bien j'ai mon alert qui s'affiche mais par contre mon reload ne se fait pas

j'ai loupé quoi ? Smiley ohwell
Modifié par djmanu68 (20 Jun 2023 - 14:22)
Humm cela ne fonctionne pas chez moi je suis sous chrome...

La nouvelle page ouvre bien mais pas de reload sur ma page ou j'ai cliqué
Le input fait parti d'un Form si jamais cela jour en quelque chose
Merci Laurent
Finalement je suis pari sur une autre solution, je fait disparaitre le bouton une foi cliqué peux importe ce qu'il fait il ne peux pas être cliqué 2 foi
Merci encore
Bonjour,

A toutes fins utiles, vous n'avez pas besoin de vous embêter avec keydown/keyup pour savoir si une touche à bascule est enfoncée ou non. D'ailleurs la technique de basculer un flag au keydown/keyup n'est pas infaillible, il est tout à fait possible que votre script suppose à tort que la touche reste enfoncée, dans le cas où il a bien reçu le keydown mais pas le keyup (si vous avez changé de fenêtre entre temps notamment !)

L'objet event contient normalement des booléens ctrlKey, shiftKey, altKey et metaKey indiquant si ces touches sont enfoncées au moment de l'évènement ou non.
Ces propriétés sont en principe disponibles pour tous les évènements clavier et souris, voire peut-être d'autres, sur tous les navigateurs y compris Internet Explorer.

Le seul gros piège est la différence de signification effective entre Mac et PC, où ça ne désigne pas toujours les mêmes touches...