如何让浏览器从自定义协议打开文件?

时间:2011-07-15 21:50:45

标签: c# javascript firefox browser protocols

我目前有一个如下所示的网址:protocol://folder/file.js

我可以使用类似文件的URL从本地磁盘打开同一个文件:// C:\ folder \ file.js

当应用程序在其自己提供的环境中运行时,此协议可用,并且可以从我的本地磁盘加载文件。

当我在常规浏览器(如firefox或chrome)中运行此应用程序时,我也希望能够访问这些文件。

我已经设法在我的Windows机器上注册此协议,并将该URL转发到自定义c#程序,然后可以再次在浏览器中打开正确的文件。但是,它会在新选项卡中打开文件,并且在尝试从页面上的标记打开文件时似乎无法正常工作。

是否有一种简单的方法可以让firefox(或任何其他浏览器)直接在请求它的选项卡中从自定义协议打开文件?

1 个答案:

答案 0 :(得分:3)

要在FireFox中执行此操作,您必须实现XPCOM对象。 C ++中有instructions on how to do this。对于C#,您遵循相同的说明,但使用GeckoFX来获取.NET的包装器。