在键盘输入设备上按下,释放或保持按键时触发的事件。
我想向 Android 版 Chrome 发送“CTRL + W”以关闭活动选项卡。我尝试了很多东西,但没有成功从终端实现它。 (如果我连接带有 OTG 的 USB 键盘,我可以关闭...
在我的 Samsung Galaxy tab 4(Android 4.4.2,Chrome:49.0.2623.105)上,我遇到了 keyCode 始终为 229 的情况。 我为两种情况设置了一个简单的测试 在我的 Samsung Galaxy tab 4(Android 4.4.2,Chrome:49.0.2623.105)上,我遇到了 keyCode 始终为 229 的情况。 我为两种情况设置了一个简单的测试 <div contenteditable="true"></div> <input> <span id="keycode"></span> 脚本: $('div, input').on('keydown', function (e) { $('#keycode').html(e.keyCode); }); 演示 幸运的是,我可以找到有关此问题的帖子,但我找不到具有可行解决方案的帖子。有人建议改用 keyup 或使用 textInput 事件,但该事件仅在 blur 上触发。 现在,最重要的是,默认的股票浏览器不会发生这种情况:( 如有任何帮助,我们将不胜感激! 更新:如果事实证明这是不可能的,我仍然可以抓住插入符号之前的字符:post 在 Android 设备中,正常的按键事件不会给出 keyCode。对此已经进行了一次大的讨论。 如果您想捕获space bar或special chars的按下,可以使用textInput事件。 $('input').on('textInput', e => { var keyCode = e.originalEvent.data.charCodeAt(0); // keyCode is ASCII of character entered. }) 注意:textInput 不会在字母、数字、退格键、回车键和其他几个键上触发。 我有同样的问题,找不到任何解决方案。 event.target.value.charAt(event.target.selectionStart - 1).charCodeAt() 遇到同样的问题,只发生在 Android 上的三星原装键盘上。解决方法是关闭键盘预测,从而修复输入。仍在进一步分析,看看是否可以在 JS 领域找到解决方法。 编辑:我已经设法为我们的案例找到解决方案。发生的情况是,我们有一个允许用户在输入框中输入的允许字符的白名单。这些是字母数字字符加上一些白名单控制字符(例如 Enter、esc、向上/向下)。任何其他字符输入都会默认阻止事件。 发生的情况是,所有带有键码 229 的事件都被阻止,因此没有输入任何文本。一旦我们将密钥代码 229 添加到白名单中,一切都会恢复正常。 因此,如果您使用某种自定义或第 3 方表单输入控制组件,请务必检查键码 229 是否已列入白名单/允许且未默认阻止。 希望这对某人有帮助。 我在三星 S7 手机上遇到了同样的问题。通过将事件从 keydown 替换为 keypress 解决了这个问题。 $("div, input").keypress(function (e) { $("#keycode").html(e.which); }); jQuery 标准化了这些东西,所以除了 e.which 之外不需要使用任何东西 https://stackoverflow.com/a/302161/259881 也许您想使用 onbeforeinput 和 oninput 事件及其 .data 属性来查找字符值,而不是使用 keydown 和 keyup 以及 .key 和 .keycode。 http://jsfiddle.net/vLga0fb9 https://caniuse.com/?search=beforeinput 我知道我正在回答一篇旧帖子,但这个问题仍然存在,所以我想分享对此的看法。 然而,这个方法并不是一个精确的解决方案,而只是像我一样的紧急解决方案。 关键是在使用按键时使用文本框的值。对于每个按键,值都会改变,通过最后一次值更新,我们可以确定按下了哪个键。 注意:这仅适用于键盘上的可见字体,即字母数字和特殊字符,这不会记录任何控制或Shift或Alt键,如您所知 $('input').keyup(function () { var keyChar = $(this).val().substr(-1); //you can do anything if you are looking to do something with the visible font characters }); 据我所知,这在移动设备上仍然是一个问题,因此解决它的唯一方法是提供解决方法。 对于回车键,您可以使用 oninput(event) 执行以下操作: let lastData = null; function handleInputEvent(inputEvent) { switch (inputEvent.inputType) { case "insertParagraph": // enter code here break; case "insertCompositionText": if (lastData === inputEvent.data) { // enter code here } break; case "insertText": // empty text insertion (insert a new line) if (!inputEvent.data) { // enter code here } } lastData = inputEvent.data; }; 要创建其他解决方法,您可以查看文档: https://developer.mozilla.org/en-US/docs/Web/API/InputEvent 和规格:https://w3c.github.io/input-events/#interface-InputEvent 一个工作示例,只需输入任何内容并按 Enter:https://jablazr.github.io/web-console/ e.target.value.endsWith(',') 你可以用这个。适用于 android 设备。 类似的东西 $(document).on("keyup", '.tagsinput', function (e) { // console.log('|'+e.target.value.endsWith(',')+'|') // elif if (e.keyCode == 188 || e.keyCode == 13 || e.target.value.endsWith(',')) { // KeyCode For comma is 188 // alert('comma added'); word = e.target.value.split(',')[0] console.log(word.length) if (word.length != 0) { console.log(word); tagsarray.push(word) e.target.value = '' tagarea.innerHTML += `<div class="block" id="${word}"><span class="tagscircle">${word}</span><div class="inline-block" attr-val="${word}" onclick="removeTag(event)"><svg attr-val="${word}" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="2" d="M20 20L4 4m16 0L4 20"/></svg></div></div>` resultsBox1.innerHTML = '' } else { e.target.value = '' } } }); 我发现,对于检测 enter 键的特定用例,将输入的 enterkeyhint 设置为 done 修复了“enter”键的此问题。一旦我这样做了,它的关键代码不再是229,而是正确的“输入”代码。 对于 React,我的代码是 <input onInput={handleKeyDown} /> 函数是 const handleKeyDown = (e) => { const keyCode = e.nativeEvent.data.charCodeAt(0); // Do what you wish with the keyCode }; 针对 WebView 修复此问题的解决方案,注意它仅处理空格字符 ,但您可以扩展映射 KeyEvent.KEYCODE_SPACE => keyCode。 class MyWebview: WebView { override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnection? { return BaseInputConnection(this, true) } override fun dispatchKeyEvent(event: KeyEvent?): Boolean { val dispatchFirst = super.dispatchKeyEvent(event) // Android sends keycode 229 when space button is pressed(and other characters, except new line for example) // So we send SPACE CHARACTER(here we handles only this case) with keyCode = 32 to browser explicitly if (event?.keyCode == KeyEvent.KEYCODE_SPACE) { if (event.action == KeyEvent.ACTION_DOWN) { evaluateJavascript("javascript:keyDown(32)", null) } else if (event.action == KeyEvent.ACTION_UP) { evaluateJavascript("javascript:keyUp(32)", null) } } return dispatchFirst } } 尝试用 e.which 代替 e.keyCode 有关此属性的更多信息,请检查 https://api.jquery.com/event.which/
我到目前为止得到的代码 导入pyglet 从 pyglet.window 导入密钥 动画 = pyglet.image.load_animation('/home/arctic/Downloads/work/gif/ErrorToSurprise.gif') animSprite = pyglet.sprite.Sprite(
我不知道如何替换SAPUI5中的F5键操作。 我有一个“刷新”按钮,它正在 UI 中重新加载我的业务数据,并在将其显示在屏幕上之前进行某种操作...
我不知道如何替换SAPUI5中的F5按键操作。 我有一个“刷新”按钮,它正在 UI 中重新加载我的业务数据,并在将其显示在屏幕上之前进行某种操作...
如何在javascript或jquery中控制tab键行为?
假设我们有两个文本框textbox1 和textbox2。 我将光标放在 textbox1 内,然后按 Tab 键。光标移动到文本框2。如何控制 javascript 中的 Tab 键行为...
如何在 Ubuntu 上的 javascript 中获取正确的重音字符?
令人惊讶的是,这只是简单的代码: 键盘输入测试 document.addEventListener('keydown', 函数(事件) { c...</desc> <question vote="0"> <p>令人惊讶的是,这个简单的代码:</p> <pre><code><!DOCTYPE html> <html> <body> <h1> Keyboard input test</h1> <script> document.addEventListener('keydown', function(event) { const pressedKey = event.key; console.log(pressedKey) }); </script> </body> </html> </code></pre> 当您尝试使用死键输入重音字符(例如西班牙语 é 或 á)时,<p>在 Windows 和 Ubuntu 上的工作方式有所不同。在 Windows 上,您将首先看到“Dead”,然后是正确的字符(é 或 á),但在 Ubuntu 上,您将看到“Dead”,然后是简单的 ascii 字符(e 或 a)。 在这种情况下似乎无法获得正确的字符。我无法在特定任务中使用输入或文本区域字段,所以我想知道是否确实如此。 我不敢相信仅仅为了实现这么简单的事情就需要对操作系统进行路径...</p> </question> <answer tick="false" vote="0"> <p>我自己发现事件按键可以完成这项工作。这对我来说很好,但对于看似标准的事情仍然有不同的行为很奇怪。</p> </answer> </body></html>
我正在尝试将从关键侦听器的 KeyEvent.getKeyCode() 获得的关键代码与 KeyEvent.VK_SLASH 之类的代码进行比较,但是当我按下斜杠键时(我知道它是斜杠,因为它显示...
有没有办法在Lua中发送按键按下和按键按下事件?是否可以? (第一次在这里提问,好紧张'~') 我希望它能帮助您自动按下按键,而无需您...
我试图检测按下“快捷键”键时何时触发按钮的操作(可以通过单击或键盘之类的其他方式)。我找不到办法...
我是初学者,别怪我。我目前正在用 C# 编写一个简单的“乒乓球”游戏,只是为了练习一下,因为这是我学习这门语言的第二周。 我试过让 keyev...
我是一名学习Python的学生,如果你们能帮助我解决这个问题那就太好了。 这是一个临时的最小代码段,window1 是一个预制变量,它在
我正在开发一个便携式数据终端项目,这是一款带有Android操作系统和内置红外扫描仪的智能手机。红外扫描仪的工作原理如下:扫描数据(例如,ba...
如何从另一个 Sub 使用 KeyEventArgs 调用 Sub
我有两个替补 Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) 处理 KeyHook.KeyDown 和 Private Sub Form1_KeyPressCaps(ByVal key As Object, e As KeyEventArgs) 处理我。
为什么我的 KeyCode/KeyEvent 函数返回无效字符或“UNDEFINDED”? (JavaFX)
我对 JavaFX 非常陌生,我正在尝试使用 KeyEvents 和 KeyCodes。为了研究如何正确使用这些,我查看了这个网页以了解如何做到这一点。 我(某种程度上)将其代码复制到...
有没有adb命令或者方法可以让我们在android中刷新页面?
我在 Android 设备中启动了一个应用程序。我将在应用程序中寻找一些运行时活动。不幸的是,需要刷新或向下滑动才能获取最新内容。 在下面尝试过...
如何检测 IE、Firefox 和 Chrome 中的转义键按下情况? 下面的代码在 IE 中有效并发出警报 27,但在 Firefox 中则发出警报 0 $('body').keypress(函数(e){ 警报(e.which); if(e.which == 27){...
我在旋转按键上的动画图像时遇到问题。我不太了解大爆炸函数并且失去了希望。 这是我的代码: (需要 2htdp/图像) (需要 2htdp/宇宙) ;;佛...
我正在尝试构建基于检测用户键盘事件的逻辑(例如,当用户在文本字段中按下退格键时)。这似乎适用于我的 Android 设备构建,但不起作用......