您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
To be used for mapping keyboard arrow press events
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/396703/1100259/Key%20navigation.js
(() => { 'use strict'; const setUpKeyNavigation = ({ onDownPressed, onLeftPressed, onRightPressed, onUpPressed, preventDefault, stopPropagation, }) => { document.addEventListener('keydown', (event) => { const operation = { ArrowDown: (e) => executeFn(onDownPressed, e), ArrowLeft: (e) => executeFn(onLeftPressed, e), ArrowRight: (e) => executeFn(onRightPressed, e), ArrowUp: (e) => executeFn(onUpPressed, e), }[event.key]; if (operation) operation(event); preventDefault && event.preventDefault(); stopPropagation && event.stopPropagation(); }); }; const setUpAnchorNavigation = (selectorsMap) => { const downHref = getAnchorHref(selectorsMap.down); const leftHref = getAnchorHref(selectorsMap.left); const rightHref = getAnchorHref(selectorsMap.right); const upHref = getAnchorHref(selectorsMap.up); setUpKeyNavigation({ onDownPressed: generateNavigationEvent(downHref), onLeftPressed: generateNavigationEvent(leftHref), onRightPressed: generateNavigationEvent(rightHref), onUpPressed: generateNavigationEvent(upHref), }); }; const getElement = (selector) => { return selector ? document.querySelector(selector) : undefined; }; const getAnchorHref = (selector) => { return getElement(selector)?.href; }; const generateNavigationEvent = (href) => { return href ? () => (location.href = href) : undefined; }; const executeFn = (fn, ...parameters) => { return typeof fn === 'function' && fn(...parameters); }; window.setUpAnchorNavigation = setUpAnchorNavigation; window.setUpKeyNavigation = setUpKeyNavigation; })();