2017-09-13 2 views
2

J'essaye de créer une extension de chrome qui modifie les commandes du jeu de navigateur populaire, Agar.io. Résumé rapide, dans le jeu ESPACE effectue l'action de split. Je veux effectuer la même action mais en appuyant sur D au lieu de SPACE. L'extension fonctionne bien. Il détecte que D a été pressé et la fonction my split() est appelée; Je sais cela parce que l'alerte apparaît, mais l'action du jeu ne fonctionne pas. J'ai regardé autour et essayé différentes manières mais rien ne fonctionne. Voici mon fichier JS.Comment simuler une pression sur une touche dans JS?

window.addEventListener('keydown', keydown); 

function keydown(event) { 
    if (event.keyCode == 68) { //key D 
     split(); 
    } 
} 

function split() { 
    $("body").trigger($.Event("keydown", { keyCode: 32})); 
    $("body").trigger($.Event("keyup", { keyCode: 32})); 
    alert("Did it work?"); 
} 

a également essayé cette méthode sans succès:

var space = jQuery.Event("keydown"); 
space.which = 32; 
$("body").trigger(space); 

Comme le montre cette question [de façon définitive pour déclencher des événements keypress avec jQuery

] 1

+1

@Dekel J'ai essayé la méthode montrée dans la question que vous avez référencée. Cela n'a pas fonctionné, c'est pourquoi j'ai posté une nouvelle question. – Vindictive

+0

Essayez d'ajouter 'event.stopPropagation();' après votre 'split();' –

+0

stopPropagation(); n'a pas fonctionné mais merci. – Vindictive

Répondre

0

j'ai pu résoudre le problème. Le code lui-même est correct et fonctionnel, mais le problème réside dans la façon dont j'ai configuré mon extension chrome. Application de la solution trouvée ici https://stackoverflow.com/a/9517879/4651794 J'ai été en mesure d'exécuter le code. Je ne sais pas si cette question a du mérite à rester debout car je pensais que le problème était avec les raccourcis clavier.