在 FireFox 浏览器中打开自定义协议..!

Posted

技术标签:

【中文标题】在 FireFox 浏览器中打开自定义协议..!【英文标题】:Opening Custom Protocol in FireFox Browser..! 【发布时间】:2016-03-06 17:58:55 【问题描述】:

我创建了一个自定义协议myapp:,就像mailto: 一样,它使用javascript 在客户端打开一个exe。因此,每当我调用那里的 JavaScript 时,都会打开一个对话框,要求选择我想要打开的应用程序。 我只是想设置它在代码中打开的默认应用程序并且不打开该对话框。我知道我可以在 Mozilla 浏览器的设置中手动从总是要求更改为设置默认值,但我希望通过代码进行设置。这样用户就不必做任何事情。 可能吗?如果是,请指导我如何实现这一目标。

【问题讨论】:

如果可能的话,它应该作为一个主要的安全问题尽快修复 是的,你可以。如果我正确理解您的问题,它会调用 navigator.registerProtocolHandler()... 感谢您的回复,实际上我已经注册了协议,并且通过它我也可以打开 exe,但我想禁用始终打开以选择的对话框(通过代码)我们要通过它打开的应用程序。就像在 safari 浏览器中一样,它直接打开而没有任何对话框,与我想要的 Mozila 一样。浏览器...!! 【参考方案1】:

您不能从非特权网页设置此类设置,这将是一个巨大的安全问题。

您可以从网页中要求用户将Web 应用程序 注册为自定义协议处理程序,而不是exe。但是,如果该 exe 是您自己编写的,您可能只需将其注册为操作系统中的协议处理程序即可。

【讨论】:

感谢您的回复,实际上我已经注册了协议,并且通过它我也可以打开 exe,但我想禁用始终打开以选择的对话框(通过代码)我们要通过它打开的应用程序。就像在 safari 浏览器中一样,它直接打开而没有任何对话框,与我想要的 Mozila 一样。浏览器...!! 我猜你最好的办法是通过你的程序破坏 Firefox 设置,就像你从可执行文件中注册协议一样。这也是here 完成的,但我不知道与 Firefox 设置交互的最佳实践。

以上是关于在 FireFox 浏览器中打开自定义协议..!的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Firefox 不等待 WebSocket 连接?

自定义 CSS webkit 滚动条在 Firefox 浏览器中不起作用

如何使用自定义协议从 Android 浏览器打开 Microsoft Outlook 应用程序?

自定义浏览器协议以使用参数打开 IE

如何在XCP中创建自定义窗口小部件

自定义Firefox / Chromium安装预安装扩展(非企业)