Tampermonkey脚本问题:按下N键模拟按键,求element定义及键码查询站
问题解答
一、变量element的定义方式
你的脚本里的element需要指向接收键盘事件的目标元素,针对hordes.io这类网页游戏,有两种可靠的定义方式:
- 全局绑定
document
大多数网页游戏会监听全局键盘事件,直接将element定义为document就能触发游戏的按键响应:
const element = document;
修改后的完整脚本:
// ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 0.1 // @description 按下N键自动触发2、3、5、6键 // @author You // @match https://hordes.io/play // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // ==/UserScript== const element = document; document.addEventListener('keydown', function(evt) { if (evt.key === "N") { evt.preventDefault(); // 避免N键本身的行为干扰 // 添加bubbles: true确保事件能被游戏捕获 element.dispatchEvent(new KeyboardEvent('keydown', {'key': '2', 'bubbles': true})); element.dispatchEvent(new KeyboardEvent('keydown', {'key': '3', 'bubbles': true})); element.dispatchEvent(new KeyboardEvent('keydown', {'key': '5', 'bubbles': true})); element.dispatchEvent(new KeyboardEvent('keydown', {'key': '6', 'bubbles': true})); } });
- 绑定游戏专属canvas元素
如果游戏仅监听自身canvas的键盘事件,可以通过浏览器开发者工具(F12)找到游戏canvas的选择器,比如:
// 示例:根据实际页面的canvas类名/ID调整 const element = document.querySelector('.game-canvas');
二、键盘键码查询方法
无需依赖外部网站,有两种实用方式:
- 浏览器控制台实时测试:打开F12进入Console面板,输入以下代码后按下任意键,就能在控制台看到该键的
key、code、keyCode值:
document.addEventListener('keydown', e => console.log('key:', e.key, 'code:', e.code, 'keyCode:', e.keyCode));
测试完成后可通过document.removeEventListener('keydown', 对应函数)移除监听。
- MDN内置文档参考:直接在浏览器搜索“MDN KeyboardEvent”,就能查看所有标准键盘键的官方定义值。
内容的提问来源于stack exchange,提问作者qwertyuiop
相关产品推荐
相关产品推荐

