Dll 在Firefox扩展中使用Firebreath生成的插件?

Dll 在Firefox扩展中使用Firebreath生成的插件?,dll,firefox-addon,xpcom,firebreath,Dll,Firefox Addon,Xpcom,Firebreath,是否可以在Firefox扩展中使用Firebreath生成的.dll 目前,我正在尝试移植我为Google Chrome制作的一个扩展,它使用javascript获取文档的HTML,然后从.dll调用一个函数,并将文档的HTML作为参数传递。dll然后保存文件并启动程序 有没有一种简单的方法将此功能移植到Firefox?或者我必须使用XPCOM重写代码吗?XPCOM对于简单的事情来说太复杂了,这就是为什么Firefox4和更高版本有js ctypes(请参阅以获取概述和示例)。这允许您轻松加载D

是否可以在Firefox扩展中使用Firebreath生成的.dll

目前,我正在尝试移植我为Google Chrome制作的一个扩展,它使用javascript获取文档的HTML,然后从.dll调用一个函数,并将文档的HTML作为参数传递。dll然后保存文件并启动程序


有没有一种简单的方法将此功能移植到Firefox?或者我必须使用XPCOM重写代码吗?

XPCOM对于简单的事情来说太复杂了,这就是为什么Firefox4和更高版本有js ctypes(请参阅以获取概述和示例)。这允许您轻松加载DLL并调用导出的本机函数。如果你真的需要使用这个DLL作为NPAPI插件,事情会变得更复杂,因为你需要一个窗口来加载插件,而Firefox不像Chrome那样有专门的后台窗口。但我猜你只是把你的DLL变成了一个插件,以便在Chrome中使用它


关于查找要与ctypes.open()一起使用的DLL,请参见我的回答:

对于简单的功能,我还建议使用js ctypes。它易于使用并提供良好的隔离(因为页面上的脚本无法访问导入的库)

如果您确实需要从任何页面访问NPAPI插件,标准方法似乎是创建扩展并修改每个页面的DOM以包含该插件:


是的,您可以将firebreath dll用作firefox扩展。对于Firefox和必须使用的HTML,您可以使用相同的javascript并进行一些修改。您必须在覆盖默认firfox的
浏览器的XUL中加载脚本。XUL

overlay chrome://browser/content/browser.xul chrome://Yourproject/content/Youroverlay.xul
在Youroverlay.xul中,您可以添加以下行以嵌入Firebreath dll

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/"?>
<overlay id="myOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml">
<script type="application/javascript" src="chrome://Yourproject/content/background.js"/>
    <vbox style="height:0;">
        <html:embed type="application/x-myproject" id="myproject1" style="height:0;"/>
    </vbox>
</overlay>