2

Firefox拡張機能でFirebreathで作成された.dllを使用することは可能ですか?

現在、JavaScriptを使用してドキュメントのHTMLを取得し、.dllから関数を呼び出して、ドキュメントのHTMLをパラメーターとして渡すGoogleChrome用に作成した拡張機能を移植しようとしています。次に、.dllはファイルを保存し、プログラムを起動します。

この機能をFirefoxに移植する簡単な方法はありますか?または、XPCOMを使用してコードを書き直す必要がありますか?

4

3 に答える 3

3

XPCOMは単純なものには複雑すぎるため、Firefox 4以降にはjs-ctypesがあります(概要についてはhttps://developer.mozilla.org/en/js-ctypesを、https://developer.mozilla.org/enを参照してください) 。 / js-ctypes / Using_js-ctypes#Calling_Windows_routines(例))。これにより、DLLをロードし、エクスポートされたネイティブ関数を簡単に呼び出すことができます。このDLLをNPAPIプラグインとして実際に使用する必要がある場合は、プラグインをロードするためのウィンドウが必要であり、Chromeとは異なりFirefoxには専用のバックグラウンドウィンドウがないため、事態はさらに複雑になります。しかし、Chromeで使用できるようにするには、DLLをプラグインに変えただけだと思います。

ctypes.open()で使用するDLLを見つけるには、ここで私の答えを参照してください:バイナリコンポーネントをjs-ctypesに参照します

于 2011-06-06T18:29:15.760 に答える
0

シンプルな機能のために、js-ctypesもお勧めします。使いやすく、優れた分離を提供します(ページ上のスクリプトはインポートされたライブラリにアクセスできないため)。

本当に任意のページからNPAPIプラグインにアクセスする必要がある場合、標準的なアプローチは、拡張機能を作成し、プラグインを含めるように各ページのDOMを変更することのようです。

スクリプト可能なNPAPIプラグインはFirefoxでは機能しません

于 2011-09-27T16:36:38.753 に答える
0

はい、Firefoxの拡張機能としてfirebreathdllを使用できます。FirefoxとHTMLの場合は、 XULを使用する必要がありますが、同じJavaScriptをいくつか変更して使用できます。デフォルトのfirfoxをオーバーレイするXULにスクリプトをロードする必要がありますbrowser.xul

overlay chrome://browser/content/browser.xul chrome://Yourproject/content/Youroverlay.xul

Youroverlay.xul内に、Firebreathdllを埋め込むために以下の行を追加できます

<?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>
于 2013-08-21T11:23:45.610 に答える