某个软件(非基于浏览器)在安装时会安装自定义协议。因此,如果软件安装在系统上,请添加一个类似于
的链接<a href="mycustomprotocol:///foobar">Launch the program!</a>
在网页中点击时启动软件(当然是在发出警告之后)。
如果未安装该软件,我想动态更改该元素,以便浏览器不会尝试启动它。
javascript中有没有办法检测协议是否有效?希望它至少可以在Firefox,IE,Chrome和Safari中使用。
由于
答案 0 :(得分:1)
JavaScript无法访问用户的桌面文件系统或注册表来验证自定义协议。
答案 1 :(得分:1)
如果支持,您可以尝试捕获window.onError事件或a.onError事件中的错误,然后使用javascript导航到回退网址。
答案 2 :(得分:1)
您在javascript中有权访问的是navigator.plugins
,它会告诉您安装了哪些插件。这样做的问题是,如果浏览器不知道如何处理它,浏览器会将协议传递给OS进行处理,而你无法通过javascript找到操作系统安装的所有不同的协议处理程序。
换句话说:不......