gpt4 book ai didi

javascript - IOS 蓝牙键盘 - 输入 - Tab 事件

转载 作者:IT王子 更新时间:2023-10-29 08:16:37 27 4
gpt4 key购买 nike

背景:我有一个文本区域。我在用户键入时捕获 Tab 键事件,然后插入一个 Tab 字符 (\t) 并防止浏览器关注下一个输入。这在所有浏览器的 Mac 和 PC 上都可以正常工作。

问题:当使用连接到 iPad 的蓝牙键盘时,这不起作用。该文档注册了 tab 键事件,但只要我关注文本区域,所有 tab 键事件都会被忽略并且不会发送到浏览器。我也用文本输入进行了测试,看到了相同的结果。

示例: https://plnkr.co/edit/NQvxijj3ISZ0B48fSHvi?p=preview

简单的监听器:

$(function(){
$("body").bind("keydown",function(e){
$("#bodyLog").append($("<div/>").html(e.keyCode));
return e.preventDefault();
});
});

当您选择了正文(不是 TEXTAREA)时,tab 键事件被注册并且数字 9 出现。任何其他关键事件也会出现。

当您选择文本区域时,所有按键事件都会在主体监听器和文本区域监听器上注册...除了 Tab 键。

如果有人有解决方案,我将永远感激不尽。

编辑我通过观察 5 个空格,然后将其转换为制表符来“解决”了这个问题。

我对此进行了研究,只能认为 iOS 不想在专注于输入/文本区域时释放对 TAB 键的控制。我曾尝试访问 Google Docs 等网站,看看他们是否已经解决了这个问题,但他们强制您下载该应用程序,而不是允许您在 iOS 上的 Safari 中编辑文件。我猜这是因为 iOS 想要完全控制 Tab 键。我已经在 iOS 上试用过 Chrome,但它的功能是一样的,所以我会说这不是 Safari 问题,而是 iOS 问题。

一个可能但未经测试的解决方法是对整个 <div> 进行编码充当文本区域,然后用 div 替换文本区域。由于 Tab 键适用于所有其他元素,理论上它应该有效,但需要相当多的 Javascript 和 CSS 才能使一个元素表现得像另一个元素。

编辑 2

我发现使用 Option+Tab 允许在文本区域中捕获制表键。我觉得这并不令人满意。当我在普通键盘上键入段落时,我不键入 Option+Tab,我只键入 Tab。据我所知,没有办法在文本区域内单独捕获 Tab 键。

最佳答案

您可以尝试使用 this library为了有这些事件:

  • 上一个按钮点击
  • 点击下一步

然后当您检测到 textarea 旁边的元素获得焦点时,您返回到您的 textarea 并插入您想要的任何内容。

关于javascript - IOS 蓝牙键盘 - 输入 - Tab 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46248686/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com