mottie/keyboard

一个在浏览器中工作的 jQuery 在屏幕键盘 (OSK) 插件。

安装: 15

依赖项: 0

建议者: 0

安全: 0

星星: 1,774

观察者: 85

分支: 722

语言:JavaScript

类型:组件

v1.30.4 2022-01-25 02:43 UTC

README

keyboard logo一个在浏览器中工作的 jQuery 在屏幕键盘 (OSK) 插件。

最初由 Jeremy Satterfield 在他的 博客jQuery 插件Snipplr 上发布。目前由 Mottie 维护。

NPM Version devDependency Status Join the chat at https://gitter.im/Mottie/Keyboard FOSSA Status

特性 (演示)

易于使用

  • 一个嵌入在浏览器窗口中的屏幕虚拟键盘,当指定的输入字段获得焦点时会弹出。
  • 用户可以输入并预览他们的输入,然后在接受或取消之前进行。
  • 可以设置为始终打开,并且不使用预览。

易于安装

  • 以 zip 格式获取文件,或从 npm 获取 - 请参阅下面的 安装 部分。
  • 在最小配置中,键盘通过以下方式工作:
    • jQuery
    • jQuery UI 主题
    • (可选) jQuery UI 位置实用程序,用于在输入/textarea 元素上定位键盘
    • 初始化键盘 - 对于qwerty键盘不需要选项。

易于设置

  • 将键盘附加到输入、textarea 或可编辑内容元素。
  • 轻松添加自定义键盘布局。
  • 包括在单独目录中的多个特定区域的键盘布局。这是一个正在进行的工作,正在缓慢增长。
  • 为每个布局添加最多四个标准键集,使用 shift 和 alt 键(默认、shift、alt 和 alt-shift)。
  • 添加任意数量的可选修饰键(元键)以添加更多键集。
  • 每个元键集也可以包括 shift、alt 和 alt-shift 键集。
  • 将键盘定位在元素周围的任何位置,或定位页面上的另一个元素(使用 jQuery UI 位置实用程序)。
  • 轻松修改键文本来表示任何语言或符号。
  • 允许直接输入或锁定预览窗口。
  • 设置输入内容的最大长度。
  • 当鼠标悬停在键上时,通过鼠标滚轮在键集之间滚动,以避免使用 alt、shift 或元键。
  • 轻松输入带重音符号的字符。以下是一些默认组合示例
    • ' + 元音(带锐音的元音,例如 ' + e = é
    • ` + 元音(带重音的元音,例如,` + e = è
    • " + 元音(带分音符的元音,例如," + e = ë
    • ^ + 元音(带圈音符的元音,例如,^ + e = ê
    • ~ + 一定字母(带波浪号的字母,例如,~ + n = ñ~ + o = õ
  • 根据需要启用、禁用或添加更多重音功能。
  • 使用回调和事件触发器,当键盘打开或关闭以及内容更改、接受或取消时发生。
  • 包括 ARIA 支持(可能未完全实现)。
  • 内置水印功能。如果浏览器不支持,则模拟HTML5的占位符。
  • 使用回调函数进行验证,以便可以使用第三方验证方法。

主题

扩展

  • Alt键:在长按键后显示弹出窗口中的备用键。
  • 自动完成:与jQuery UI的自动完成小部件集成。
  • 插入符:添加具有自定义样式的插入符。
  • 扩展器:添加可切换的布局(例如,切换数字键盘)。
  • 键集:在虚拟键盘内显示shift、alt或meta键集 - 自定义样式。
  • 移动端:与jQuery Mobile和jQuery Mobile v1.4一起使用。
  • 导航:使用箭头、home、end和翻页上下导航键盘内部。
  • 打乱:为提高安全性,在打开键盘时打乱整个键集或按行进行打乱。
  • 输入:允许您模拟键盘输入,用于演示目的或辅助用户输入。

依赖关系

  • 必需
    • jQuery 1.4.3+
    • jQuery caret(包含在源代码中)
  • 可选
    • jQuery UI定位工具(可选,如果您自己定位键盘)
    • jQuery UI CSS(可自定义)/ Bootstrap CSS
    • jQuery mousewheel插件 - 允许使用鼠标滚轮滚动到其他键集
    • jQuery UI自动完成小部件 - 与jQuery键盘自动完成扩展一起使用

安装

TypeScript

您可以使用 TypeScript。安装 TypeScript@types/virtual-keyboard 作为开发依赖项。

文档

Wiki: 主页 | 常见问题解答 | 设置 | 使用方法 | 选项 ( 布局, 语言, 可用性, 动作 ) | 方法 | 主题 | 日志

待办事项

  • 添加输入掩码扩展。我认为我会尝试使其与 此插件 兼容。
  • 允许将键盘附加到 contenteditable 元素。自 v1.27.0 版本起已添加。

已知问题

  • 全部:只有类型为 "text","search","url","telephone" 和 "password" 的输入支持光标定位 (参考)。使用此键盘与任何其他输入类型将破坏光标左右移动、退格和删除键(请参阅 问题 #241 了解详细信息)。
  • 移动设备:如果按键滞后一个字符,很可能是由于鼠标滚轮插件引起的。请禁用它。请参阅问题 #379 & #411
  • IEOpera
    • 在具有多个换行符的文本区域中,当使用鼠标重新定位光标时,光标定位将不正确。
    • 使用左右箭头键在具有多个换行符的文本区域中导航时存在问题。当从一行切换到下一行时,光标的行为不像在其他浏览器中那样。您始终可以使用鼠标重新定位光标。
  • Opera:在文本区域内部按下 tab 键时,除了 Opera 之外的所有浏览器都会将 tab 添加到虚拟键盘文本区域。
  • Safari:请参阅带有锁定输入的 QWERTY 文本区域演示。在使用虚拟键盘键入时,文本将反向输入!这是因为在具有 "readonly" 属性的文本区域中,始终返回光标位置为零。
  • 键入扩展:
    • 当按下 "Alt" 键时,按键组将更改为 alt 按键组,但焦点将移动到浏览器菜单。快速按下它第二次将返回焦点。这是内置在浏览器中的,并且据我所知,无法在第一次按下 alt 键时自动恢复窗口焦点。
    • 按下Alt键尝试输入也不可行,因为Windows操作系统假设你正在尝试输入快捷键以访问浏览器菜单。您仍然可以使用鼠标点击Alt键组的键。
    • 当CapsLock开启时,键盘模拟输入会中断。仍在寻找跨浏览器的解决方案。

贡献

  • 安装node.js - 这包括npm(Node包管理器)。
  • 在根目录下运行npm install
  • 运行npm install -g grunt-cli以安装Grunt命令行界面。
  • 对代码进行任何更改。
  • 单元测试将在稍后添加。
  • 运行grunt/dist文件夹中执行新的构建。
  • 从非master分支提交pull请求。

许可

  • 键盘代码:所有版本均采用MIT许可证
  • 光标代码由C. F. Wong (Cloudgen)提供:MIT许可证
  • 布局文件:大多数文件采用WTFPL,除非文件本身有其他规定。

FOSSA Status

变更日志

以下仅显示最新更改,请参阅wiki日志以查看旧版本。

版本1.30.4(2022-01-24)

  • 在初始化时保存并恢复焦点。关闭问题#811

版本1.30.3(2021-03-14)

  • 光标:修复textarea中的光标定位

版本1.30.2(2020-05-11)

  • 核心
    • 从数字到文本的输入类型转换已被删除。
    • 对非支持的输入类型抛出错误。修复问题#754 - 这是一个破坏性更改,因为在此库之前会将数字和电子邮件类型转换为文本类型输入。
    • 修复输入类型检测。请参阅问题#754
    • 修复已销毁键盘的检测。
    • 根据十进制设置更新正则表达式。请参阅问题#771
  • 布局
    • 更新了多个布局:奥里亚语、泰米尔语、泰卢固语、马拉雅拉姆语、印地语、卡纳达语、孟加拉语、古吉拉特语、马拉地语、尼泊尔语、旁遮普语和乌尔都语;感谢durga598
  • 语言
  • 文档
    • 修复第一个布局演示。