好的,我已经在我自己的 Mac(版本 10.6.8)和 Windows XP 上进行了本地测试,所以好消息是它可以工作(而且非常简单)。
其基本思想是:
- 了解如何从命令行打开屏幕键盘
- 设置浏览器以允许从 JavaScript 执行命令行
- 编写您的 HTML :-)
两个平台的说明如下。
Mac
对于 Mac,下载并构建此 Xcode 项目:
- https://github.com/nriley/keyboardViewer 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/ https://addons.mozilla.org/en-US/firefox/addon/commandrun/
该插件将允许您从 JavaScript 执行操作系统命令(例如执行文件)。在从附加组件执行此命令之前,您需要将此命令添加到允许的命令列表中。
要执行此操作,请转至about:config
在浏览器地址栏中。右键单击首选项列表并选择新建 > 字符串。您要添加的新首选项的名称是extensions.commandrun.allowedcommands
。对于该值,请输入以下内容:
- On Mac:
["/Users/Oliver/Desktop/keyboardViewer"]
- 在 Windows 上:
["C:\\WINDOWS\\system32\\osk.exe"]
HTML
现在,您将能够使用 HTML 从 Firefox 打开屏幕键盘,如下所示:
<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 等效项)。