2015-12-02 301 views
-3

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

+2

如果有可能,它应该尽快修复作为一个主要的安全问题 –

+0

是的,你可以。它的调用navigator.registerProtocolHandler(),如果我正确地理解你的问题... – dandavis

+0

感谢您的答复,其实我已经注册了协议已经通过,我可以打开exe也,但我想禁用对话框(通过代码),它始终打开,以选择我们想要打开的应用程序。在safari浏览器中,它直接打开,没有任何对话框,我想为Mozila一样。浏览器...! – avaneesh

回答

0

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

你可以从网页上询问用户是否将web应用程序注册为自定义协议处理程序,但不是exe。但是,如果该exe文件是由您自己编写的,则可以将其注册为OS内的协议处理程序。

+0

感谢您的回复,其实我已经注册了协议,通过我也可以打开exe文件,但我想禁用对话框(通过代码),它始终打开,以选择我们想要打开的应用程序。在safari浏览器中,它直接打开,没有任何对话框,我想为Mozila一样..浏览器...! – avaneesh

+0

我想你最好的办法就是通过你的程序来破解Firefox的设置,就像你从可执行文件注册协议一样。这是[https://groups.google.com/forum/#!msg/mozilla.support.firefox/Pxrx0-SKW1c/gyBVXgqB2MUJ]完成的,但我不知道如何与firefox进行交互的最佳做法设置。 – Bergi