Ist es möglich, Tastendruckereignisse programmatisch in JavaScript zu simulieren?
Antworten
Zu viele Anzeigen?
Srinidhi Shankar
Punkte
191
Mike Sallese
Punkte
721
yan bellavance
Punkte
4500
Sobald der Benutzer die betreffende Taste drückt, können Sie einen Verweis auf diese Taste speichern und sie in jedem anderen HTML-Element verwenden:
EnterKeyPressToEmulate<input class="lineEditInput" id="addr333_1" type="text" style="width:60%;right:0%;float:right" onkeydown="keyPressRecorder(event)"></input>
TypeHereToEmulateKeyPress<input class="lineEditInput" id="addr333_2" type="text" style="width:60%;right:0%;float:right" onkeydown="triggerKeyPressOnNextSiblingFromWithinKeyPress(event)">
Itappears Here Too<input class="lineEditInput" id="addr333_3" type="text" style="width:60%;right:0%;float:right;" onkeydown="keyPressHandler(event)">
<script>
var gZeroEvent;
function keyPressRecorder(e)
{
gZeroEvent = e;
}
function triggerKeyPressOnNextSiblingFromWithinKeyPress(TTT)
{
if(typeof(gZeroEvent) != 'undefined') {
TTT.currentTarget.nextElementSibling.dispatchEvent(gZeroEvent);
keyPressHandler(TTT);
}
}
function keyPressHandler(TTT)
{
if(typeof(gZeroEvent) != 'undefined') {
TTT.currentTarget.value+= gZeroEvent.key;
event.preventDefault();
event.stopPropagation();
}
}
</script>
Sie können den keyCode festlegen, wenn Sie Ihr eigenes Ereignis erstellen, Sie können vorhandene Parameter von jedem echten Tastaturereignis kopieren (ohne Berücksichtigung von Zielen, da dies die Aufgabe von dispatchEvent ist) und :
ta = new KeyboardEvent('keypress',{ctrlKey:true,key:'Escape'})
Konrad Linkowski
Punkte
2071
Das habe ich gefunden:
function createKeyboardEvent(name, key, altKey, ctrlKey, shiftKey, metaKey, bubbles) {
var e = new Event(name)
e.key = key
e.keyCode = e.key.charCodeAt(0)
e.which = e.keyCode
e.altKey = altKey
e.ctrlKey = ctrlKey
e.shiftKey = shiftKey
e.metaKey = metaKey
e.bubbles = bubbles
return e
}
var name = 'keydown'
var key = 'a'
var event = createKeyboardEvent(name, key, false, false, false, false, true)
document.addEventListener(name, () => {})
document.dispatchEvent(event)
- See previous answers
- Weitere Antworten anzeigen