web 站点中使用了第三方协议,点击该链接的时候会打开一个第三方程序,但是前提是用户 PC 上装有该程序。
如果没有安装,则没有任何提示。现在需要检测。
目前可行的方法是读取特定的注册表值,在 IE
中是可以的,代码如下(WarnOnOpen
为测试用的):
try {
var shell = new ActiveXObject("WScript.Shell");
var ChatCallerKey=shell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ProtocolExecute\WPC\WarnOnOpen");
alert("该值注册表中已存在");
} catch (e) {
alert("注册表中不存在该值");
}
但是在 Chrome
和 Firefox
中怎么搞?
或者有没有别的什么方法可以做这种检测?
ActiveXObject插件是IE所特有的,在不同浏览器内核下是无法通用的。