如何判断协议在Javascript中是否有效

时间:2011-02-17 20:58:30

标签: javascript custom-protocol

  

可能重复:
  How to detect browser's protocol handlers?

某个软件(非基于浏览器)在安装时会安装自定义协议。因此,如果软件安装在系统上,请添加一个类似于

的链接
<a href="mycustomprotocol:///foobar">Launch the program!</a> 

在网页中点击时启动软件(当然是在发出警告之后)。

如果未安装该软件,我想动态更改该元素,以便浏览器不会尝试启动它。

javascript中有没有办法检测协议是否有效?希望它至少可以在Firefox,IE,Chrome和Safari中使用。

由于

3 个答案:

答案 0 :(得分:1)

JavaScript无法访问用户的桌面文件系统或注册表来验证自定义协议。

答案 1 :(得分:1)

如果支持,您可以尝试捕获window.onError事件或a.onError事件中的错误,然后使用javascript导航到回退网址。

答案 2 :(得分:1)

您在javascript中有权访问的是navigator.plugins,它会告诉您安装了哪些插件。这样做的问题是,如果浏览器不知道如何处理它,浏览器会将协议传递给OS进行处理,而你无法通过javascript找到操作系统安装的所有不同的协议处理程序。

换句话说:不......