js - симулировать нажатие клавиши без указания элемента - PullRequest
0 голосов
/ 09 июня 2018

Я хотел бы смоделировать нажатие клавиши в js.желательно без указания какого-либо элемента.

, как я хотел бы сделать, это использовать .focus () на входе, а затем имитировать нажатие клавиши, как символ «a».

простоТо же самое произошло бы, если бы я сам нажал клавишу.

В поисках в Интернете я не нашел решения.это может быть связано с комбинацией смоделированного события и поля ввода.иногда я могу поймать события, но в поле ввода нет входных данных.

Заранее большое спасибо за любую помощь.

РЕДАКТИРОВАТЬ 1: это не следует считать дубликатомиз: Можно ли программно моделировать события нажатия клавиш?

, потому что это не решает мою проблему.я уже попробовал.

РЕДАКТИРОВАТЬ 2: пожалуйста, не понижайте этот вопрос только потому, что вы не знаете, как на него ответить.

1 Ответ

0 голосов
/ 09 июня 2018

Если у вас есть или можно включить jQuery, вот простой способ

С помощью jQuery

jQuery.event.trigger({ type: 'keydown', which: 78 }); // press n key

Для имитации события нажатия клавиши в поле ввода используйтеthis

var e = jQuery.Event("keydown");
e.which = 78; // n code value
e.altKey = true; // Alt key pressed
$("#inputBox").trigger(e);

Без jQuery

var kbEvent= document.createEvent("KeyboardEvent");
var initMethod = typeof kbEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";

kbEvent[initMethod](
                   "keydown", // event type : keydown, keyup, keypress
                    true, // bubbles
                    true, // cancelable
                    window, // viewArg: should be window
                    false, // ctrlKeyArg
                    false, // altKeyArg
                    false, // shiftKeyArg
                    false, // metaKeyArg
                    78, // keyCodeArg : unsigned long the virtual key code , else 0
                    0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0
);
document.dispatchEvent(kbEvent);

Приведенный выше кодовый код не изменит входное значение для вас, он будет имитировать только нажатия клавиш

См. Этот пост для получения дополнительной информации Как имитировать ввод в поле ввода с помощью jQuery?

Что вам нужно: fn.sendKeys

...