【问题标题】:How To Tell Whether a Protocol is Valid In Javascript [duplicate]如何判断协议在Javascript中是否有效[重复]
【发布时间】:2011-06-29 09:45:20
【问题描述】:

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

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

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

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

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

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

谢谢

【问题讨论】:

  • 在移动设备上,您可以使用嵌入式 iframe 在自定义协议和已知协议(网络或应用商店)之间自动切换,请参阅 gist.github.com/2662899

标签: javascript custom-protocol


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      所以换句话说:不...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        • 2021-11-06
        相关资源
        最近更新 更多