要实现这个目的,重点是如何在web页面上(浏览器)调用本地应用程序,这是一个很麻烦的问题,在 IE 浏览器中可以简单的通过如下的脚本来实现:
new ActiveXObject(“Wscript.Shell”).Run(“D:\demo.exe”);
很明显这是借助了IE插件,而在非 IE 环境下,这种方法我就只能呵呵了。那要怎么办呢?
不知道大家有没有注意过很多网页上都有的一个 “QQ 客服” 功能,也就是类似于下面的按钮:
点击上面的按钮,会弹出如下的信息:
当我们单击了启动应用后,就会启动电脑上安装的QQ软件并打开对应的联系人的对话窗口。很明显,这就是一个web页面上调用本地应用程序的例子,而且不受到浏览器的限制,那腾讯是怎么做的呢?
通过自定义一个协议即可达到该目的。上诉图片中的链接是tencent开头,这就是一个腾讯自定义的协议。同样,我们也可以自定义一个协议。定义一个协议很简单,只要在注册表中写入对应的信息,电脑就能识别该协议,格式如下:
上述是我自定义的一个简单协议,该协议用 CustomProtocol.exe 程序完成解析。之后,只要是以dist开头的链接,都会调用 CustomProtocol.exe程序并解析相应的参数。
下面两张图展示的是我根据上述思路实现的在web页面(我做成了一个浏览器插件)上直接输入ftp的相关信息,点击后直接用本地资源管理器打开并登录进入到指定的路径,这样方便用户直接在ftp里面放置或者拷贝文件。
输入地址,单击 “打开FTP” 按钮后会打开本地资源管理器,并登录FTP进入指定的CAD文件夹:
不足之处,烦请指正,谢谢!!