Ich habe ein Szenario, wo ich eine JS-Methode vorbereiten muss, wo die Tab-Taste ausgelöst werden soll. Wenn die Funktion ausgeführt wird, sollte die Schaltfläche "Tab" geklickt werden. vorzugsweise mit Schlüsselcode.So feuern Sie einen Tastatur-Tastendruck mit Tastencode
Antwort
Sie können Tastaturereignisse versenden, aber die Ergebnisse sind möglicherweise nicht überwältigend.
Wie unten gezeigt, können Sie ein Ereignis mit entsprechenden Eigenschaften senden, aber in einigen Browsern sind die Werte leer und der Browser ignoriert sie virtuell. Sie können auf die Schaltfläche klicken und "Enter" drücken, um darauf zu klicken. Er löst eine Registerkarte aus, der Fokus wird jedoch nicht verschoben und das zugeordnete Ereignis meldet die im Konstruktor festgelegten Werte nicht.
Eingabe in die Eingabe zeigt die Art des Ergebnisses, das Sie erhalten sollten. Probieren Sie es in vielen Browsern aus.
function showEventProperties(evt) {
document.getElementById('details').innerHTML = ['type','key','code','keyIdentifier','charCode','which','keyCode'].map(function(key) {
return key + ': ' + evt[key];
}).join('<br>');
}
function sendTab(node) {
var evt = new KeyboardEvent('keypress', {
'view': window,
'bubbles': true,
'key': 'Tab',
'charCode': 9,
'keyCode': 9,
'which': 9
});
node.dispatchEvent(evt);
}
window.onload = function() {
document.addEventListener('keypress', showEventProperties, false);
}
<input onkeypress="showEventProperties(event)">
<br>
<button onclick="sendTab(this)">Do tab</button><button>Next button</button>
<p id="details"></p>
Sie auch die ältere initKeyEvent versuchen.
Vielen Dank, aber es funktioniert nicht in IE :(. Eigentlich habe ich mit diesem Problem, weil mein wirkliches Problem anders ist. Dieses verwende ich als eine Arbeit um Bitte finden Sie den Link dafür, wenn Sie eine bessere Lösung vorschlagen können: [link] (https://stackoverflow.com/questions/44062232/how-to-validate-shifttab-button-click-in-js) –
- 1. Tastencode Präferenz
- 2. So feuern Sie einen nachfolgenden Job in Laravel 5.2
- 3. So feuern Benachrichtigung mit TimeEdit
- 4. So feuern benutzerdefinierte abbrechen Ereignis
- 5. So lösen Sie Firebase onAuthStateChanged feuern 2x (Initialisierung und Auflösung)?
- 6. Javascript - So feuern Sie einen Event-Handler sofort statt ihn in die Warteschlange
- 7. So deaktivieren Sie FileSystemWatcher Created Event von feuern
- 8. jQuery feuern klicken Ereignis ohne einen Klick
- 9. NSTimer nicht Wähler feuern, wenn sie mit scheduledTimerWithTimeInterval
- 10. So erstellen Sie einen Spinner mit Optionsschaltflächen
- 11. So erstellen Sie einen Preloader mit Angular2
- 12. So teilen Sie einen String mit ||
- 13. So registrieren Sie einen Dienst mit Consul
- 14. So drehen Sie einen Punkt mit transformers.py
- 15. So drucken Sie einen Schneemann mit Ruby
- 16. Tastendruck und Tastenbelegung - Warum unterscheidet sich der Tastencode?
- 17. Android Tabhost mit OnTabChangedListener nicht feuern
- 18. So feuern Tastaturereignis Text in Textarea eingeben Javascript
- 19. So erhalten Sie einen Seitentitel
- 20. So sortieren Sie einen Iterable
- 21. So feuern Sie eine beendete Veranstaltung mit einem Videojs-Player auf Handy
- 22. So klonen Sie einen Funktionszeiger
- 23. So erstellen Sie einen Binärbaum
- 24. Javascript drücken Tastencode "+1 eingeben" und "-1 eingeben"
- 25. So animieren Sie einen UIBezierPfad
- 26. So entfernen Sie einen Form.Element.Observer
- 27. So komprimieren Sie einen Expander
- 28. So erstellen Sie einen scala.concurrent.ExecutionContext
- 29. So löschen Sie einen DatePicker
- 30. So analysieren Sie einen NSString
Mögliche Duplikate von [Ein Tastaturereignis in JavaScript auslösen] (http://stackoverflow.com/questions/961532/firing-a-keyboard-event-in-javascript) – JYoThI
"Tab-Taste klicken" macht keinen Sinn. Meinst du das Klicken auf einen Button sollte ein [* keyboard event *] (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent) gesendet werden, das den gleichen * key * Wert wie der Tab-Taste? Für * key * benutzen Sie "Tab", für * das * '9'. – RobG
ja genau, Funktion sollte ausführen oder versenden was auch immer Schlüsselcode geliefert –