1

可能重复:
如何检测浏览器的协议处理程序?

某个软件(非基于浏览器)在安装时会安装自定义协议。因此,如果系统上安装了该软件,则放置一个看起来像

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

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

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

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

谢谢

4

3 回答 3

2

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

于 2011-02-17T21:04:15.820 回答
1

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

换句话说:不...

于 2011-02-17T21:08:02.220 回答
1

如果支持,您可以尝试在 window.onError 事件或 a.onError 事件中捕获错误,然后改用 javascript 导航到后备 url。

于 2011-02-17T21:06:47.970 回答