JSFiddle - React, Tailwind, and code Playground
by Sergei Sokolov
HTML
<textarea cols="80" rows="5"></textarea>
JavaScript
/**
* для вопроса https://toster.ru/q/645012
* Как переписать данный скрипт?
*/
const buttonChars = {
1: 'W',
2: ' ',
};
let timer;
const clearTimer = () => {if (timer) clearInterval(timer);}
const root = window;
root.addEventListener("mousedown", e => {
if (buttonChars.hasOwnProperty(e.buttons)) {
console.log(buttonChars[e.buttons]);
const func = () => e.target.dispatchEvent(
new KeyboardEvent('keydown',{
'key': buttonChars[e.buttons],
'bubbles': true,
'cancellable': true,
})
);
func();
clearTimer();
timer = setInterval(func, 80);
};
});
root.addEventListener("mouseup", clearTimer);
// Testing
const input = document.querySelector("textarea");
document.body.addEventListener("keydown", e => input.value += e.key);