Javascript中的Mac/Windows弹出式虚拟键盘
Mac/Windows Pop up Virtual Keyboard in Javascript
我正在开发一款专为在大型触摸屏显示器上使用而设计的网络应用程序。它不是一个移动应用程序;它将在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上进行了本地测试,所以好消息是它可以工作(而且非常容易)。
基本思想是:
- 知道如何从命令行打开屏幕键盘
- 设置浏览器以允许从JavaScript执行命令行
- 编写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等效程序)。
- 在元素悬停上显示带有javascript的弹出式网站
- Chrome扩展弹出式安装
- 普通(弹出式)Chrome 扩展程序与在开发者工具中添加标签页的扩展程序之间的区别
- 仅加载弹出式javascript
- Javascript弹出式Google Chrome扩展
- Javascript中的Mac/Windows弹出式虚拟键盘
- 弹出式浏览器兼容性
- 弹出式引导+棱角分明
- 弹出式视频播放器显示在Firefox中的奇数位置
- 打开弹出式html页面
- 弹出式签名不起作用
- Facebook 发送按钮 - 操作弹出式按钮
- 如何在 YII 中使用 ajaxvalidation 实现弹出式登录表单
- 在弹出式显示和隐藏上遇到样式问题
- 弹出式:每个会话和加载仅一次
- 后台代码在任何弹出式单击时运行
- 使用 Facebook PHP SDK 执行弹出式登录窗口
- Chrome 扩展程序:将网址动态添加到弹出式页面
- 无法将鼠标坐标从content_script传递到弹出式窗口(Chrome 扩展程序)
- 华丽的弹出式youtube视频没有't负载