Est-il possible de simuler la touche appuyez sur les événements par programme?
Est-il possible de simuler les principaux événements de presse par programmation en JavaScript?
Pouvez-vous préciser le simuler? Votre but est de tester votre site web ou est-il d'adopter le onclick, onmousedown, etc fonctionnalité d'un lien donné?
Non la version jquery qui fonctionne dans les deux webkit et gecko:
var keyboardEvent = document.createEvent("KeyboardEvent");var initMethod =typeof keyboardEvent.initKeyboardEvent !=='undefined'?"initKeyboardEvent":"initKeyEvent";
keyboardEvent[initMethod]("keydown",//event type : keydown, keyup, keypresstrue,//bubblestrue,//cancelable
window,//viewArg: should be windowfalse,//ctrlKeyArgfalse,//altKeyArgfalse,//shiftKeyArgfalse,//metaKeyArg40,//keyCodeArg : unsigned long the virtual key code, else 00//charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0);
document.dispatchEvent(keyboardEvent);
Philip, cela ressemble le code dont j'ai besoin, mais j'ai besoin de l'envoi de l'événement keypress pour un textarea. j'ai essayé de modifier votre code à envoyer à un textarea, mais il n'apparaît pas de travail, dans chrome, au moins, une idée de ce qui pourrait être mauvais? voici le jsfiddle que j'ai faite afin de démontrer: jsfiddle.net/szmJu Y en a un bug dans Chrome avec KeyboardEvent de l'expédition. Découvrez ce fil de discussion pour plus de détails: stackoverflow.com/questions/10455626/.... keyCode est toujours 0, et je ne peux pas le changer. Il semble qu'il y a un bug dans Chrome qui provoque la event.which d'être toujours 0 lors de l'utilisation de document.createEvent("KeyboardEvent"). @lluft partagé les détails et une solution de contournement, qui a travaillé pour moi, dans ce comment sur un thread différent. Fondamentalement, vous avez besoin d'utiliser document.createEvent('Event') pour créer un générique de l'événement, puis définissez le type de keydown et de donner un keyCode propriété est égale à la clé, charcode. Il semble que cette fonction a été supprimée par maintenant. MDN a considéré comme obsolète depuis un certain temps, cependant.
function simulateKeyPress(character){
jQuery.event.trigger({ type :'keypress', which : character.charCodeAt(0)});}
$(function(){
$('body').keypress(function(e){
alert(e.which);});
simulateKeyPress("e");});
Salut Ce que je voulais dire, c'est: 1. Enregistrer un événement clé (lettre e exécute certains JS) 2. À partir d'une autre méthode, je veux par programmation appuyez sur la lettre e) Elle ne fonctionne pas correctement dans google Chrome, désolé. jQuery crée l'Événement, mais sans les attributs importants - qui, charCode, mot de code. Ce n'est pas possible. Voir ma réponse pour le raisonnement derrière elle. Notez que triggercan pas être utilisé pour imiter le navigateur natif d'événements.
Ce que vous pouvez faire est de déclencher par programmation keyevent auditeurs par des tirs de keyevents. Il est logique de permettre à ce à partir d'un sandbox de sécurité de point de vue. L'utilisation de cette capacité, vous pouvez ensuite appliquer un typique observateur-modèle. On pourrait appeler cela de la méthode de la "simulation".
Ci-dessous est un exemple de la façon d'accomplir ceci dans le DOM du W3C standard avec jQuery:
function triggerClick(){varevent=newMouseEvent('click',{'view': window,'bubbles':true,'cancelable':true});var cb = document.querySelector('input[type=submit][name=btnK]');var canceled =!cb.dispatchEvent(event);if(canceled){//preventDefault was called and the event cancelled}else{//insert your event-logic here...}}
jQuery('input[type=submit][name=btnK]').trigger({
type:'keypress',
which: character.charCodeAt(0/*the key to trigger*/)});
Mais récemment, il n'y a pas de [DOM] de façon à déclencher des keyevents de quitter le navigateur-bac à sable. Et de tous les principaux fournisseurs de navigateur va s'en tenir au concept de sécurité.
Comme pour les plugins tel qu'Adobe Flash, qui sont fondés sur l'NPAPI-, et permis de contourner la sandbox: ce sont phasing-out ; Firefox.
Explication Détaillée:
Vous ne pouvez pas et vous ne devez pas pour des raisons de sécurité (comme Pekka déjà souligné). Vous aurez toujours besoin d'un utilisateur de l'interaction entre les deux. En outre imaginer la chance de les éditeurs de navigateurs obtenir poursuivi par les utilisateurs, comme les différents programmatique clavier événements ont conduit à des attaques par usurpation.
Voir ce post d'alternatives et de plus de détails. Il y a toujours le flash en fonction copier-coller. Voici un élégant exemple. En même temps, il est un témoignage pourquoi le web est en mouvement loin de plugin fournisseurs.
Il est similaire de sécurité de l'état d'esprit appliqué dans le cas de la opt-dans la SCRO politique pour l'accès à distance le contenu de la programmation.
La réponse est:
Il n'y a aucun moyen de le déclencher par programmation des touches d'entrée dans la sandbox du navigateur de l'environnement dans des circonstances normales.
Ligne de fond: je ne dis pas qu'il ne sera pas possible dans l'avenir, en vertu de navigateur spécial-modes et/ou de privilèges vers l'objectif final du jeu, ou toute autre expérience. Toutefois, avant d'entrer dans ces modes, l'utilisateur sera demandé pour les autorisations et les risques, semblable à la Plein écran de l'API de modèle.
Utile: Dans le cadre de codes de touche, cette de l'outil et de mot de code de cartographie viendra dans maniable.
Divulgation: La réponse est basée sur la réponse ici.
Donc, avec le JavaScript KeyboardEvent API (developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent), vous pouvez simuler les événements clés, par exemple dire qu'une touche est enfoncée, mais il n'est pas possible d'avoir les clés de la presse, à l'instar de l'écriture des caractères 'a', 'b', 'c'? Si c'est possible, l'écriture de ces principes de base des caractères n'est pas un problème de sécurité, mais je comprends qu'une touche spéciale comme "F12" ou une telle combinaison de touches "Alt+F4" devrait être interdite. C'est ce que j'obtiens quand je lance votre jQuery dans google Chrome: Uncaught ReferenceError: personnage n'est pas défini
cela ne fonctionne pas Je pense que la réponse devrait mentionner le fait que, distribué en js événement n'est pas mise à jour d'entrée de contenu. Il fonctionne mais nécessite un navigateur moderne Dernière Firefox n'est pas moderne? Semble que keypress est amorti, en utilisant keydown au lieu -> developer.mozilla.org/en-US/docs/Web/Events/keypress
function simulateKeyPress(){var evt = document.createEvent("KeyboardEvent");
evt.initKeyboardEvent("keypress",true,true, window,0,0,0,0,0,"e".charCodeAt(0))var body = document.body;var canceled =!body.dispatchEvent(evt);if(canceled){//A handler called preventDefault
alert("canceled");}else{//None of the handlers called preventDefault
alert("not canceled");}}
Je n'ai pas fait de test, mais il est adapté à partir du code sur dispatchEvent()'s de la documentation. Vous aurez probablement envie de lire, et aussi les docs pour createEvent() et initKeyEvent().
Note: Ceci est pris en charge par les navigateurs Gecko seulement. Gecko et les autres navigateurs en désaccord quant à l'utilisation initKeyEvent ou initKeyboardEvent(). Les deux sont abandonnés en faveur de l'utilisation de la KeyboardEvent() constructeur.
Vous pouvez créer et répartir les événements de clavier, et ils vont déclencher inscrit approprié des gestionnaires d'événements, mais ils ne produira aucun texte, si elles sont envoyées à l'élément d'entrée par exemple.
Pleinement de simuler la saisie de texte vous avez besoin pour produire une séquence d'événements de clavier, plus de définir explicitement le texte de l'élément d'entrée. La séquence des événements dépend de fond que vous voulez simuler la saisie de texte.
Bâtiment sur la réponse de alex2k8, voici une version révisée qui fonctionne dans tous les navigateurs que jQuery prend en charge (le problème a été en manque d'arguments pour jQuery.de l'événement.déclencheur, ce qui est facile d'oublier lors de l'utilisation de cette fonction interne).
//jQuery plugin. Called on a jQuery object, not directly.
jQuery.fn.simulateKeyPress =function(character){//Internally calls jQuery.event.trigger with arguments (Event, data, elem).//That last argument, 'elem', is very important!
jQuery(this).trigger({ type:'keypress', which: character.charCodeAt(0)});};
jQuery(function($){//Bind event handler
$('body').keypress(function(e){
alert(String.fromCharCode(e.which));
console.log(e);});//Simulate the key press
$('body').simulateKeyPress('x');});
On pourrait même pousser plus loin et de laisser non seulement de simuler l'événement, mais l'insertion du personnage (si c'est un élément d'entrée), cependant il y a beaucoup de croix-navigateur gotcha lorsque vous tentez de le faire. Mieux utiliser une version plus élaborée plugin comme SendKeys.
SendKeys ne permet PAS de simuler des touches juste injecte des valeurs dans les éléments cibles. Pas de la simulation d'un matériel de pression de touche, juste appeler lié pression de touche de fonction.
Pour ceux qui sont intéressés, vous pouvez, en fait, de recréer clavier de saisie des événements de manière fiable. Pour modifier le texte dans la zone de saisie (déplacer les curseurs, ou la page via une entrée de caractères), vous devez suivre le modèle d'événements DOM près: http://www.w3.org/TR/DOM-Level-3-Events/#h4_events-inputevents
Le modèle devrait le faire:
focus (distribué sur le DOM avec la cible définie)
Ensuite, pour chaque caractère:
keydown (répartis sur les DOM)
beforeinput (envoyé à la cible si ses un textarea ou d'entrée)
keypress (répartis sur les DOM)
d'entrée (envoyé à la cible si ses un textarea ou d'entrée)
changement (envoyé à la cible si ses select)
keyup (répartis sur les DOM)
Puis, éventuellement, pour la plupart:
flou (distribué sur le DOM avec la cible définie)
Ce fait modifie le texte dans la page via javascript (sans modification déclarations de valeur) et le code javascript les auditeurs et les gestionnaires de façon appropriée. Si vous gâcher la séquence de javascript, pas de feu, dans l'ordre, le texte dans la zone d'entrée ne change pas, les sélections ne changera pas, ou le curseur ne se déplace pas à l'espace suivant dans la zone de texte.
Malheureusement, le code a été écrit pour un employeur en vertu d'un NDA donc je ne peux pas le partager, mais il est certainement possible, mais vous devez recréer l'intégralité de la clé d'entrée "pile" pour chaque élément dans l'ordre correct.
NDA pour le JavaScript? Vraiment? de toute façon pour chaque personnage de votre algorithme est faux, la simulation de "l'entrée" de l'événement de toute façon, ajoute le texte, sans passer par toute la keydown,keyup de l'événement ou de tout autre événement. Le problème est de savoir comment gérer plusieurs événements de pression de touche etc comme appuyant sur la touche "a" et attend "aaaaaaa" à plusieurs reprises. L'astuce est de tirer un keydown, entrée, keyup. Si vous souhaitez que plusieurs "aaaaaa" garder le tir de l'entrée de l'événement. et ne le dites à personne. J'ai essayé ceci mais ça ne semble pas fonctionner tout à fait: je peux déclencher des événements pour Entrer, la touche retour arrière ou les touches fléchées, mais pas avec les personnages. Par exemple, je ne peut pas d'entrée de texte par le biais de cette méthode, bien que j'ai suivi votre commande de près les événements. par chance, vous avez encore l'exemple de code pour le déclenchement d'Entrée en fonction de cette réponse?
Dans certains cas, keypress événement ne peut pas fournir requis funtionality, en général, les événements est combiné à partir de les deux, par conséquent tiré événements keydown, et ce qui suit, il keyup pour la même clé. Donc tout simplement de générer les événements un par un:
Node.prototype.fire=function(type,options){varevent=newCustomEvent(type);for(var p in options){event[p]=options[p];}this.dispatchEvent(event);}
4 ex veux simuler les touches ctrl+z
window.addEventListener("keyup",function(ev){if(ev.ctrlKey && ev.keyCode ===90) console.log(ev);//or do smth})
document.fire("keyup",{ctrlKey:true,keyCode:90,bubbles:true})
Je suis en train d'essayer votre code. Si j'appuie sur une touche je ne reçois dans le port d'écoute, mais le document.le feu n'a pas d'effet. "(" n'est pas un problème. J'ai corrigé tout de suite. C'est tout simplement pas entrer dans ce après le document.un incendie. BTW, je suis déclenchement en cliquant sur une icône. Mon code est quelque chose comme ceci: <img src="paramètres".svg" height="22" width="24" style="curseur: pointeur;" ng-click="openAdminConsole()"> Dans openAdminConsole() je fais un document.un incendie. N'est-ce pas exact?
Je ne sais pas d'où il vient, mais il est utile. Il ajoute un .simulate() méthode pour window.KeyEvent, vous utilisez simplement avec KeyEvent.simulate(0, 13) pour la simulation d'un enter ou KeyEvent.simulate(81, 81) pour un 'Q'.
Cela a fonctionné pour moi et il n'simuler un keyup pour mon textaera. si vous le souhaitez pour l'ensemble de la page, il suffit de mettre la KeySimulation() sur <body> comme ce <body onmousemove="KeySimulation()"> ou si pas onmousemove puis onmouseover ou onload travaille trop.
Voici une solution qui fonctionne dans Chrome et Chromium (ne l'ai testé que ces plates-formes). Il semble que Chrome a quelques bug ou d'une approche propre à la manipulation de codes de clé donc, cette propriété doit être ajouté séparément à la KeyboardEvent.
function simulateKeydown (keycode,isCtrl,isAlt,isShift){var e =newKeyboardEvent("keydown",{ bubbles:true, cancelable:true,char:String.fromCharCode(keycode), key:String.fromCharCode(keycode), shiftKey:isShift, ctrlKey:isCtrl, altKey:isAlt });Object.defineProperty(e,'keyCode',{get:function(){returnthis.keyCodeVal;}});
e.keyCodeVal = keycode;
document.dispatchEvent(e);}
Une seule ligne à la vanille web Javascript inspecteur guy prêt pour le console dans un copier+coller(ce mec est déjà attrayante pour la plupart des devs, donc, ne pas essayer d'embellir lui - il est censé être unique.. ramé)
var pressthiskey ="q"/* <--- :) !? q for example */;var e =newEvent("keydown");
e.key = pressthiskey;
e.keyCode = e.key.charCodeAt(0);
e.which = e.keyCode;
e.altKey =false;
e.ctrlKey =true;
e.shiftKey =false;
e.metaKey =false;
e.bubbles =true;
document.dispatchEvent(e);
Je sais que la question demande un javascript de façon à simuler la pression de touche. Mais pour ceux qui sont à la recherche d'un jQuery façon de faire les choses:
var e = jQuery.Event("keypress");
e.which =13//or e.keyCode = 13 that simulates an <ENTER>
$("#element_id").trigger(e);
Non la version jquery qui fonctionne dans les deux webkit et gecko:
Y en a un bug dans Chrome avec KeyboardEvent de l'expédition. Découvrez ce fil de discussion pour plus de détails: stackoverflow.com/questions/10455626/....
keyCode
est toujours 0, et je ne peux pas le changer.Il semble qu'il y a un bug dans Chrome qui provoque la
event.which
d'être toujours0
lors de l'utilisation dedocument.createEvent("KeyboardEvent")
. @lluft partagé les détails et une solution de contournement, qui a travaillé pour moi, dans ce comment sur un thread différent. Fondamentalement, vous avez besoin d'utiliserdocument.createEvent('Event')
pour créer un générique de l'événement, puis définissez le type dekeydown
et de donner unkeyCode
propriété est égale à la clé, charcode.Il semble que cette fonction a été supprimée par maintenant. MDN a considéré comme obsolète depuis un certain temps, cependant.
OriginalL'auteur Philip Nuzhnyy
Si vous êtes ok pour utiliser jQuery 1.3.1:
Elle ne fonctionne pas correctement dans google Chrome, désolé. jQuery crée l'Événement, mais sans les attributs importants - qui, charCode, mot de code.
Ce n'est pas possible. Voir ma réponse pour le raisonnement derrière elle.
Notez que
trigger
can pas être utilisé pour imiter le navigateur natif d'événements.OriginalL'auteur alex2k8
Ce que vous pouvez faire est de déclencher par programmation keyevent auditeurs par des tirs de keyevents. Il est logique de permettre à ce à partir d'un sandbox de sécurité de point de vue. L'utilisation de cette capacité, vous pouvez ensuite appliquer un typique observateur-modèle. On pourrait appeler cela de la méthode de la "simulation".
Ci-dessous est un exemple de la façon d'accomplir ceci dans le DOM du W3C standard avec jQuery:
Cet exemple est adapté de: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
En jQuery:
Mais récemment, il n'y a pas de [DOM] de façon à déclencher des keyevents de quitter le navigateur-bac à sable. Et de tous les principaux fournisseurs de navigateur va s'en tenir au concept de sécurité.
Comme pour les plugins tel qu'Adobe Flash, qui sont fondés sur l'NPAPI-, et permis de contourner la sandbox: ce sont phasing-out ; Firefox.
Explication Détaillée:
Vous ne pouvez pas et vous ne devez pas pour des raisons de sécurité (comme Pekka déjà souligné). Vous aurez toujours besoin d'un utilisateur de l'interaction entre les deux. En outre imaginer la chance de les éditeurs de navigateurs obtenir poursuivi par les utilisateurs, comme les différents programmatique clavier événements ont conduit à des attaques par usurpation.
Voir ce post d'alternatives et de plus de détails. Il y a toujours le flash en fonction copier-coller. Voici un élégant exemple. En même temps, il est un témoignage pourquoi le web est en mouvement loin de plugin fournisseurs.
Il est similaire de sécurité de l'état d'esprit appliqué dans le cas de la opt-dans la SCRO politique pour l'accès à distance le contenu de la programmation.
La réponse est:
Il n'y a aucun moyen de le déclencher par programmation des touches d'entrée dans la sandbox du navigateur de l'environnement dans des circonstances normales.
Ligne de fond: je ne dis pas qu'il ne sera pas possible dans l'avenir, en vertu de navigateur spécial-modes et/ou de privilèges vers l'objectif final du jeu, ou toute autre expérience. Toutefois, avant d'entrer dans ces modes, l'utilisateur sera demandé pour les autorisations et les risques, semblable à la Plein écran de l'API de modèle.
Utile: Dans le cadre de codes de touche, cette de l'outil et de mot de code de cartographie viendra dans maniable.
Divulgation: La réponse est basée sur la réponse ici.
C'est ce que j'obtiens quand je lance votre jQuery dans google Chrome: Uncaught ReferenceError: personnage n'est pas défini
OriginalL'auteur Lorenz Lo Sauer
Vous pouvez expédier des événements de clavier sur un élément comme ce
Je pense que la réponse devrait mentionner le fait que, distribué en js événement n'est pas mise à jour d'entrée de contenu.
Il fonctionne mais nécessite un navigateur moderne
Dernière Firefox n'est pas moderne?
Semble que
keypress
est amorti, en utilisantkeydown
au lieu -> developer.mozilla.org/en-US/docs/Web/Events/keypressOriginalL'auteur aljgom
Vous pouvez utiliser
dispatchEvent()
:Je n'ai pas fait de test, mais il est adapté à partir du code sur dispatchEvent()'s de la documentation. Vous aurez probablement envie de lire, et aussi les docs pour createEvent() et initKeyEvent().
Gecko et les autres navigateurs en désaccord quant à l'utilisation
initKeyEvent
ouinitKeyboardEvent()
. Les deux sont abandonnés en faveur de l'utilisation de la KeyboardEvent() constructeur.OriginalL'auteur Plutor
Vous pouvez créer et répartir les événements de clavier, et ils vont déclencher inscrit approprié des gestionnaires d'événements, mais ils ne produira aucun texte, si elles sont envoyées à l'élément d'entrée par exemple.
Pleinement de simuler la saisie de texte vous avez besoin pour produire une séquence d'événements de clavier, plus de définir explicitement le texte de l'élément d'entrée. La séquence des événements dépend de fond que vous voulez simuler la saisie de texte.
La forme la plus simple serait:
OriginalL'auteur Alex Burtsev
Bâtiment sur la réponse de alex2k8, voici une version révisée qui fonctionne dans tous les navigateurs que jQuery prend en charge (le problème a été en manque d'arguments pour jQuery.de l'événement.déclencheur, ce qui est facile d'oublier lors de l'utilisation de cette fonction interne).
On pourrait même pousser plus loin et de laisser non seulement de simuler l'événement, mais l'insertion du personnage (si c'est un élément d'entrée), cependant il y a beaucoup de croix-navigateur gotcha lorsque vous tentez de le faire. Mieux utiliser une version plus élaborée plugin comme SendKeys.
Pas de la simulation d'un matériel de pression de touche, juste appeler lié pression de touche de fonction.
OriginalL'auteur Krinkle
Pour ceux qui sont intéressés, vous pouvez, en fait, de recréer clavier de saisie des événements de manière fiable. Pour modifier le texte dans la zone de saisie (déplacer les curseurs, ou la page via une entrée de caractères), vous devez suivre le modèle d'événements DOM près: http://www.w3.org/TR/DOM-Level-3-Events/#h4_events-inputevents
Le modèle devrait le faire:
Ensuite, pour chaque caractère:
Puis, éventuellement, pour la plupart:
Ce fait modifie le texte dans la page via javascript (sans modification déclarations de valeur) et le code javascript les auditeurs et les gestionnaires de façon appropriée. Si vous gâcher la séquence de javascript, pas de feu, dans l'ordre, le texte dans la zone d'entrée ne change pas, les sélections ne changera pas, ou le curseur ne se déplace pas à l'espace suivant dans la zone de texte.
Malheureusement, le code a été écrit pour un employeur en vertu d'un NDA donc je ne peux pas le partager, mais il est certainement possible, mais vous devez recréer l'intégralité de la clé d'entrée "pile" pour chaque élément dans l'ordre correct.
L'astuce est de tirer un keydown, entrée, keyup. Si vous souhaitez que plusieurs "aaaaaa" garder le tir de l'entrée de l'événement. et ne le dites à personne.
J'ai essayé ceci mais ça ne semble pas fonctionner tout à fait: je peux déclencher des événements pour Entrer, la touche retour arrière ou les touches fléchées, mais pas avec les personnages. Par exemple, je ne peut pas d'entrée de texte par le biais de cette méthode, bien que j'ai suivi votre commande de près les événements.
par chance, vous avez encore l'exemple de code pour le déclenchement d'Entrée en fonction de cette réponse?
OriginalL'auteur Trevor
Dans certains cas,
keypress
événement ne peut pas fournir requis funtionality, en général, les événements est combiné à partir de les deux, par conséquent tiré événementskeydown
, et ce qui suit, ilkeyup
pour la même clé. Donc tout simplement de générer les événements un par un:OriginalL'auteur Малъ Скрылевъ
Cette approche de soutien de la croix-navigateur en changeant la valeur de code de la clé.
Source
OriginalL'auteur Ata Iravani
suffit d'utiliser CustomEvent
4 ex veux simuler les touches ctrl+z
"(" n'est pas un problème. J'ai corrigé tout de suite. C'est tout simplement pas entrer dans ce après le document.un incendie. BTW, je suis déclenchement en cliquant sur une icône.
Mon code est quelque chose comme ceci: <img src="paramètres".svg" height="22" width="24" style="curseur: pointeur;" ng-click="openAdminConsole()"> Dans openAdminConsole() je fais un document.un incendie. N'est-ce pas exact?
OriginalL'auteur bortunac
Voici une bibliothèque qui aide vraiment: https://cdn.rawgit.com/ccampbell/mousetrap/2e5c2a8adbe80a89050aaf4e02c45f02f1cc12d4/tests/libs/key-event.js
Je ne sais pas d'où il vient, mais il est utile. Il ajoute un
.simulate()
méthode pourwindow.KeyEvent
, vous utilisez simplement avecKeyEvent.simulate(0, 13)
pour la simulation d'unenter
ouKeyEvent.simulate(81, 81)
pour un'Q'
.Je l'ai eu à https://github.com/ccampbell/mousetrap/tree/master/tests.
OriginalL'auteur fiatjaf
Cela a fonctionné pour moi et il n'simuler un keyup pour mon textaera. si vous le souhaitez pour l'ensemble de la page, il suffit de mettre la
KeySimulation()
sur<body>
comme ce<body onmousemove="KeySimulation()">
ou si pasonmousemove
puisonmouseover
ouonload
travaille trop.initKeyboardEvent
est obsolète. (Source)OriginalL'auteur SeekLoad
Voici une solution qui fonctionne dans Chrome et Chromium (ne l'ai testé que ces plates-formes). Il semble que Chrome a quelques bug ou d'une approche propre à la manipulation de codes de clé donc, cette propriété doit être ajouté séparément à la KeyboardEvent.
OriginalL'auteur Soren
C'est ce que j'ai réussi à trouver:
OriginalL'auteur Konowy
Une seule ligne à la vanille web Javascript inspecteur guy prêt pour le console dans un copier+coller (ce mec est déjà attrayante pour la plupart des devs, donc, ne pas essayer d'embellir lui - il est censé être unique.. ramé)
OriginalL'auteur K. Kilian Lindberg
Je sais que la question demande un javascript de façon à simuler la pression de touche. Mais pour ceux qui sont à la recherche d'un jQuery façon de faire les choses:
OriginalL'auteur Srinidhi Shankar