Mac / Windows在Javascript中弹出虚拟键盘

时间:2012-07-26 18:54:34

标签: javascript windows macos

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

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

如果这是可能的,我相信Mac与Windows不同,所以我猜这真的是两个问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

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

基本理念是:

  1. 了解如何从命令行打开屏幕键盘
  2. 设置浏览器以允许从JavaScript执行命令行
  3. 撰写您的HTML: - )
  4. 两个平台的说明如下。

    <强>苹果

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

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

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

    • /Users/Oliver/Desktop/keyboardViewer

    <强>窗

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

    • C:\WINDOWS\system32\osk.exe

    <强>火狐

    接下来,您将不得不从浏览器执行此文件(或Windows命令)。因此,请在此处安装Firefox插件:

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

    要执行此操作,请转到浏览器地址栏中的about:config。右键单击首选项列表,然后选择新建&gt;串。您要添加的新偏好设置的名称为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)。