Javascript中的Mac/Windows弹出式虚拟键盘

Mac/Windows Pop up Virtual Keyboard in Javascript

本文关键字:弹出式 虚拟 键盘 Windows 中的 Mac Javascript      更新时间:2024-03-20

我正在开发一款专为在大型触摸屏显示器上使用而设计的网络应用程序。它不是一个移动应用程序;它将在mac OS X和windows上的FireFox和Chrome中运行。我正在寻找一种从javascript以编程方式弹出操作系统原生屏幕键盘的方法。在Win 7中,当用户专注于文本区域时,这种情况会自动发生(就像iOS和Android一样),但对于旧版本的Windows和OS X,用户必须手动将其拉起,这是我想消除的麻烦。

理想情况下,它会像Win7/iOS/Android一样工作,当用户专注于文本区域时会自动弹出,但我会接受键盘上弹出的任何javascript,即使我必须为每个文本框添加它。

如果这是可能的,我相信Mac和Windows是不同的,所以我想这真的是两个问题合一。感谢您的帮助。

好吧,我已经在我自己的Mac(10.6.8版本)和Windows XP上进行了本地测试,所以好消息是它可以工作(而且非常容易)。

基本思想是:

  1. 知道如何从命令行打开屏幕键盘
  2. 设置浏览器以允许从JavaScript执行命令行
  3. 编写HTML:-)

两个平台的说明如下。

Mac

对于Mac,下载并构建这个Xcode项目:

  • https://github.com/nriley/keyboardViewer

确保您的构建目标与客户端Mac相同(例如64位Intel等)。输出将是一个名为keyboardViewer的可执行文件。这将在执行时弹出屏幕键盘。

假设您已经将keyboadViewer保存到用户的桌面上,那么您想要执行的命令是(在我的情况下):

  • /Users/Oliver/Desktop/keyboardViewer

Windows

在Windows上,从命令行打开屏幕键盘要容易得多。以下(或类似)可以做到这一点:

  • C:'WINDOWS'system32'osk.exe

Firefox

接下来,您将不得不从浏览器中执行此文件(或Windows命令)。所以,在这里安装Firefox插件:

  • https://addons.mozilla.org/en-US/firefox/addon/commandrun/

此插件将允许您从JavaScript执行操作系统命令(例如执行文件)。在从加载项执行此操作之前,您需要将此命令添加到允许的命令列表中。

要执行此操作,请转到浏览器地址栏中的about:config。右键单击首选项列表,然后选择"新建">"字符串"。要添加的新首选项的名称为extensions.commandrun.allowedcommands。对于该值,请输入以下内容:

  • 在Mac上:["/Users/Oliver/Desktop/keyboardViewer"]
  • 在Windows上:["C:''WINDOWS''system32''osk.exe"]

HTML

现在,你可以从Firefox打开屏幕键盘,HTML如下:

<script language="javascript">
function openKeyboard(){
    CommandRun.run("/Users/Oliver/Desktop/keyboardViewer", []);
}
</script>
<input type="text" onfocus="javascript:openKeyboard();" />

在Windows上,替换以下内容:

CommandRun.run("C:''WINDOWS''system32''osk.exe", []);

替代

另一种选择是用Adobe Air之类的软件编写自己的浏览器。使用该方法,您的JavaScript调用您的Air应用程序,然后您的Air程序执行keyboardViewer(或Windows等效程序)。