在 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 浏览器中打开自定义协议..!的主要内容,如果未能解决你的问题,请参考以下文章
自定义 CSS webkit 滚动条在 Firefox 浏览器中不起作用