Как мне программно сообщить компьютеру, чтобы он запустил нажатие клавиши буквы q?

#javascript #triggers #keydown

#javascript #триггеры #нажатие клавиши

Вопрос:

Я просто пытаюсь запустить три нажатия клавиши q для вызываемой функции

функция threeqs(){запускает три q-штриха}

Комментарии:

1. Используйте dispatchEvent developer.mozilla.org/en-US/docs/Web/API/EventTarget /…

2. можете ли вы написать конкретный пример для использования буквы q?

3. Обратите внимание, что события нажатия клавиши могут быть применены только к содержимому страницы.

Ответ №1:

В Javascript вы можете программно запускать события, используя EventTarget.dispatchEvent(event)

Вы могли бы написать что-то вроде этого, чтобы запустить ваше событие три раза:

 var element = document.createElement("p");
element.dispatchEvent(new KeyboardEvent('keydown',{'key':'q'}));
element.dispatchEvent(new KeyboardEvent('keydown',{'key':'q'}));
element.dispatchEvent(new KeyboardEvent('keydown',{'key':'q'}));
  

Документация

 var element = document.createElement("p");
element.addEventListener('keydown', logKey);

element.dispatchEvent(new KeyboardEvent('keydown',{'key':'q'}));
element.dispatchEvent(new KeyboardEvent('keydown',{'key':'q'}));
element.dispatchEvent(new KeyboardEvent('keydown',{'key':'q'}));

function logKey(e) {

//Do your stuff
console.log(e.key);
 
}  

Комментарии:

1. не могли бы вы привести пример?

2. я получаю логическое значение при присвоении переменной.

3. Я приложил небольшой пример к исходному ответу, надеюсь, это поможет!

4. это просто регистрация буквы q? Я пытаюсь выполнить нажатие кнопки q три раза, не прикасаясь к клавиатуре, захват буквы q точно правильный, но вместо консоли я хочу, чтобы буква была нажата, как если бы я печатал, фактически не печатая.

Ответ №2:

Вот и все

 document.dispatchEvent(new KeyboardEvent('keydown', {'key': 'q'}))
  

Комментарии:

1. repl.it/@MathewStratton1/WelloffClutteredTriggers#index.php

2. Я пытаюсь переключиться на второй div, чтобы запустить таймер, дважды нажав кнопку q, я ввел ваш код дважды подряд в функцию freckleMeTonsForBurnCooknessOntheGrillSet(), и это не сработало. если вы видите repl и нажимаете Apes, и начинаете с undefined, а затем вручную дважды нажимаете q. часы запустятся, но идея состоит в том, чтобы компьютер программно нажимал две кнопки q, чтобы часы запускались.

3. не могли бы вы привести пример? я получаю логическое значение, когда я регистрирую это в консоли