首页 > 解决方案 > browserstack ctrl+enter 键盘事件未在 chrome 或 IE 中注册

问题描述

我正在测试 Browserstack 上的一项功能,但不确定它在 Windows 上是否真的坏了,或者 Browserstack 是否没有正确获取我的键盘事件。

我试图检测用户何时按下 ctrl+enter。我下面有一个代码片段,它在我的 MacBook 上的 Chrome 中运行良好。但是,当我使用 Browserstack 在带有 Chrome 87(最新)的 Windows 10 中运行它时,它没有注册正确的键盘事件。

重现步骤

  1. 在 MacBook 上,访问www.browserstack.com
  2. 使用此帖子作为 url 开始实时会话:https://stackoverflow.com/questions/65113392
  3. 选择 Windows 10 Chrome 87(最新)
  4. 在 Browserstack 中单击下面的运行代码片段按钮
  5. 点击输入框
  6. 按 ctrl+enter

预期行为:我看到“key:Enter,ctrlKey:true”

观察到的行为:我看到“key:Control,ctrlKey:true”

const input = document.getElementById('input')
const output = document.getElementById('output')
input.addEventListener('keydown', (e) => {
  output.innerText = `key: ${e.key}, ctrlKey: ${e.ctrlKey}`
})
<input type="text" id="input" />
<div id="output"></div>

标签: javascriptwindowsgoogle-chromekeyboard-eventsbrowserstack

解决方案


我与 Browerstack 的客户服务进行了交谈。他们能够确认这是 Browserstack 中的一个错误。我认为这与他们切换 cmd 和 ctrl 键的方式有关。无论如何,听起来他们没有优先考虑这个错误。

如果您正在开发需要按 ctrl+enter 的应用程序(例如,提交评论以便用户可以使用 enter 键创建换行符),那么您最好的测试选择是https://www.lambdatest.com。我检查了所有其他主要竞争对手,LambdaTest 是唯一一个提供免费实时测试的,尽管您确实需要注册一个与 Browserstack 不同的帐户。LambdaTest 没有这个错误,所以我能够很好地测试该功能。


推荐阅读