To be used for mapping keyboard arrow press events
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greatest.deepsurf.us/scripts/396703/774316/Key%20navigation.js
(() => {
'use strict';
const KEYS = {
37: 'LEFT',
38: 'UP',
39: 'RIGHT',
40: 'DOWN',
};
const setUpKeyNavigation = ({
onDownPressed,
onLeftPressed,
onRightPressed,
onUpPressed,
preventDefault,
stopPropagation,
}) => {
document.addEventListener('keydown', event => {
const eventKey = KEYS[event.which];
const operation = {
DOWN: e => executeFn(onDownPressed, e),
LEFT: e => executeFn(onLeftPressed, e),
RIGHT: e => executeFn(onRightPressed, e),
UP: e => executeFn(onUpPressed, e),
}[eventKey];
operation && operation(event);
preventDefault && event.preventDefault();
stopPropagation && event.stopPropagation();
});
};
const executeFn = (fn, ...parameters) => {
return typeof fn === 'function' && fn(...parameters);
};
window.setUpKeyNavigation = setUpKeyNavigation;
})();