Mac / Windows在Javascript中popup虚拟键盘

我正在devise一个专门用于大型触摸屏显示器的web应用程序。 这不是一个移动应用程序; 它将在Mac OS X和Windows上运行在FireFox和Chrome上。 我正在寻找一种方式来编程从popup操作系统的本机屏幕键盘。 在Win 7中,当用户将注意力集中在文本区域(就像iOS和Android)时会自动发生,但是对于较早版本的Windows和OS X,用户必须手动将其拉起,这是我想要的麻烦消除。

理想情况下,它将像Win7 / iOS / Android一样工作,并在用户将焦点放在文本区域时自动popup,但我会解决任何popup键盘的JavaScript,即使必须为每个文本框添加它。

如果这甚至是可能的,我敢肯定这是不同的Mac和Windows,所以我想这是真正的两个问题之一。 任何帮助表示赞赏。

Solutions Collecting From Web of "Mac / Windows在Javascript中popup虚拟键盘"

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

基本的想法是:

  1. 知道如何从命令行打开屏幕键盘
  2. 设置浏览器以允许从JavaScript执行命令行
  3. 写下你的HTML 🙂

这两个平台的说明如下。

苹果电脑

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

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

假设你已经将keyboadViewer保存到了用户的桌面上,那么你将要执行的命令(就像我的情况一样):

  • /Users/Oliver/Desktop/keyboardViewer

视窗

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

  • C:\WINDOWS\system32\osk.exe

火狐

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

这个插件将允许你从JavaScript执行OS命令(例如执行文件)。 在从附加组件中执行此操作之前,您需要将此命令添加到允许的命令列表中。

为此,请在浏览器地址栏中转到about:config 。 右键单击首选项列表并选择New> String。 您要添加的新首选项的名称是extensions.commandrun.allowedcommands 。 对于该值,输入以下内容:

  • 在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对等)。