`

在浏览器里启动本地应用

阅读更多
受限于javascript的安全问题,一般来说在浏览器里是不允许启动本地应用的

不过上网时候经常发现,在网页里点击一些图标,却能启动本地的应用程序,比如QQ、迅雷、电驴等

搜索了一下,主要有以下2种办法:

1、修改注册表,然后通过协议启动

修改注册表的例子类似下面:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\TEST]
@="TEST"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\TEST\DefaultIcon]
@="C:\\Windows\\Notepad.exe"
[HKEY_CLASSES_ROOT\TEST\shell]
[HKEY_CLASSES_ROOT\TEST\shell\open]
[HKEY_CLASSES_ROOT\TEST\shell\open\command]
@="C:\\Windows\\Notepad.exe \"%1\""

然后在网页里放一个链接
<a href="test:">test</a>

点击这个链接,就会启动Notepad应用





2、通过ActiveXObject或NPAPI实现

在IE下用ActiveXObject,可以启动外部应用程序,甚至可以读取硬盘数据等,当然IE在实现ActiveXObject的时候,已经考虑了安全性的问题

在非IE浏览器下,比如FF和Chrome,不支持ActiveXObject,需要使用NPAPI实现

比如支付宝的安全插件、安全证书,就是通过NPAPI实现,所以可以支持各种浏览器

不过NPAPI无法用JAVA开发得到,只能用C++开发

http://stackoverflow.com/questions/9501482/java-to-npapi-for-chrome-extension
http://blog.csdn.net/zhouyuqwert/article/details/7387516
  • 大小: 20.2 KB
  • 大小: 19.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics