有没有办法检索键盘事件中按下的键的显示值

2024-03-22

I would like to let the user press a combination of keys and display the input in a readable way. If the the pressed for example altP I would like to display alt P.

我知道如何处理修饰键本身,但我找不到“普通”键的解决方案。我尝试使用event.code在这种情况下给我的财产KeyP (The event.key or event.which属性不合适,因为修饰键会将值更改为例如π).
但我必须映射的值event.code to P,特别是对于具有特殊字符的键,因为它们在不同的布局上可能具有非常不同的值。

是否有一个属性可以检索键的显示值(不带修饰符的物理键盘上打印的值!)或一个库来映射event.code最常见键盘布局的显示值? (例如event.code = "Quote"映射到Quote/"适合美式布局并Ä适用于德国布局)

window.onload = function () {
  document.addEventListener("keydown", function(){
    document.getElementById("keydownResult").innerText = event.code + " pressed. Value is " + event.key + ".";
    // Procduces "KeyP pressed. Value is π." on macOS with german layout.
  });
};
<p id="keydownResult"></p>

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法检索键盘事件中按下的键的显示值 的相关文章

随机推荐

  • 有没有办法立即检查目录是否正在使用?

    我想使用 Directory Move 移动目录及其所有子目录 不过 在此之前 我想检查该目录及其子目录中的任何文件和子文件是否正在被其他进程使用 然后 在移动之前 我想将目录锁定到其他进程 这样我就可以确保 Directory Move
  • 在 jQuery 对象数组上调用 show

    我有一个关于性能的小问题jQuery show 这个问题出现在 IE8 中 可能还有以下版本 但 IE8 是我感兴趣的 我有一个 jQuery 对象数组 我们称之为elements 我想向他们展示 所以我这样做了 for var i ele
  • WebClient.DownloadFileTaskAsync() 实际上永远不会超时吗?

    在异步之前的日子里 人们想知道如何设置超时WebClient答案很简单 就是扩展基类并覆盖GetWebRequest 并在那里设置超时 protected override WebRequest GetWebRequest Uri addr
  • 在 Excel VBA 宏中使用 Google 翻译

    各位 多年来 我一直在我的 Excel 宏之一中使用以下函数来帮助我将照片标题从英语撰写为法语 今天上午它开始抛出一个错误 该错误指向 Send下面代码中的命令 Public Function getGoogleTranslation st
  • 从 MySQL 表中选择值是数组的行?

    我有一个包含 ID 列表的表 我使用查询来选择它 然后将其作为数组获取 我知道如何执行此操作 然后我想从另一个表中选择行 其中 ID 位于之前获取的数组中 我该怎么做 提前致谢 你很可能想做一个WHERE field IN 类型查询 它本质
  • neo4j中如何删除多个节点

    如何在neo4j中删除多个节点 不是全部 我有这个查询MATCH n where n name IS NULL delete n 它返回多个节点 我想删除所有这些节点 所有节点 这些节点是错误创建的 这就是为什么变成空 我面临的错误是 ja
  • Rails 模型范围内的关联数据

    我有一个名为Post 博客文章 和一个名为Category 每个帖子belongs to一个类别 每个类别都有一个名为retainer指定帖子 过期 之前的时间量 例如movies category retainer 30 days 我想做
  • 在 Python 中迭代嵌套字典

    我的字典的结构如下 stockData AAPL beta 1 01833975315094 company name Apple dividend 1 9341673320912078 total 300 GOOG beta 1 0183
  • 在 Verilog 设计中产生时钟故障

    我正在使用 Verilog 设计芯片 我有一个 3 位计数器 我希望当计数器处于第 8 次循环时 应该有一个时钟故障 之后就可以正常工作了 在 Verilog 设计中产生时钟故障的可能方法是什么 在时钟信号上注入毛刺的一种方法是使用forc
  • 要复制到 Windows 共享 (SMB) 的 Ant 任务

    是否有 ant 任务 类似于 ftp 或 scp 任务 允许我将一组文件复制到 Windows smb 共享 编辑 我必须为此使用 jcifs 创建一个任务 如果有人需要 这里是代码 取决于 jcifs 和 apache ioutils i
  • 使用内置 std::sort 函数对 C++ 中的二维数组进行排序

    我有一个形式的矩阵pMat M N where M and N是可变的 因此是来自用户的输入 我想使用内置的对二维数组的元素进行排序std sort功能 例如 考虑以下数组 5 9 6 8 1 3 7 2 4 它应该输出为 1 2 3 4
  • 用于上采样的 PCM 算法

    我有 8k16 位 pcm 音频 我想将其上采样到 16k16 位 我必须手动执行此操作 有人可以告诉我线性插值的算法吗 我应该在每两个字节之间插入吗 另外 当我上采样时 我必须对 wav 标头进行更改 我应该更改什么 正如其他人提到的 线
  • 如何仅合并特定表格行的两个单元格? (文档、应用程序脚本)

    I am trying to create a table in a Doc file using Google Appsscript The last row should only consist of one cell 但我能得到的就
  • 如何使用 Jquery 更改选项值?

    我正在寻找一种在用户单击链接时更改选择标记的选项值的方法 例如我有一个选择选项 html
  • 如何在 Raspbian Jessie 上安装 Python 3.5

    我需要在 Rasbian Raspberry Pi 的 Debian 上安装 Python 3 5 目前仅支持 3 4 版本 对于我想要编译的源 我必须安装 sudo apt get install y python3 python emp
  • Sails.js v 10.2 缺少 Express 应用程序

    升级后如何从 Sails 全局对象访问 Express 应用程序实例 在 sails 0 9x 中 我们可以通过以下方式访问 Express 应用程序实例 sails express app 升级到0 10后 快递功能缺失 我们如何调用该应
  • 如何在OpenCV 3.0或更高版本中使用estimateRigidTransform,还有其他选择吗?

    我想使用OpenCV的estimateRigidTransform函数 但它抛出一个错误 AttributeError Traceback 最近调用 最后 在 30 31 求变换矩阵 gt 32 m cv2 estimateRigidTra
  • 如何在 Python 模块中正确使用相对或绝对导入? [复制]

    这个问题在这里已经有答案了 在 Python 中使用相对导入有一个缺点 您将无法再作为独立运行模块 因为您将收到异常 ValueError 尝试在非包中进行相对导入 Code test py just a sample file impor
  • 使用 PowerShell 编辑 XML 和“文件格式”错误

    我正在使用 Codeplex 中的 HyperV 模块从 2008R2 Hyper V 服务器执行 仅配置 导出 为了导入另一台 HyperV 服务器上的配置 我需要编辑 EXP 文件中 CopyVMStorage 的值 该文件是一个 XM
  • 有没有办法检索键盘事件中按下的键的显示值

    I would like to let the user press a combination of keys and display the input in a readable way If the the pressed for