2010-11-24 18 views
6

IEに移植したいFirefox拡張機能がありますが、もう一度コード化したくありません。Firefox拡張機能をBHOに移植する(ブラウザヘルパーオブジェクト、別名IE拡張機能)

私に役立つものはありますか?

  • IE拡張機能をレンダリングできるIE BHOは、拡張機能が呼び出すIEにマップされています。
  • FF拡張を取り、BHOを生成するジェネレータです(C、C#などで必要に応じて)。

編集:このようなことはないかもしれません。私は質問を開いたままにしておきます...

+0

Wiki BHOをIE http://petesearch.com/wiki/に書き込む方法。がんばろう。 –

答えて

1

簡単な方法はありません。モデルは非常に異なっています。できるだけコアコードを抽象化し、各ブラウザに対して一度接着剤を書きます。 JSを注入するプラグインに依存

0

は(あなたがFFで使用methodesにすなわち結合し)、IEとFF

の両方をコンパイルし、単一のコードを使用することができますサイト/ソフトウェアがある

多くのポータブルであります
1

私たちが1つのコードベースで持っている最大の問題と、IEとFF関数の間の独自のマッピングは、インターフェイスが少し違うか、そうでなければバグがあり、ブラウザ間で一定のアプローチをとることができません。

2つのインターフェイスを使い慣れたものにするために、より重いヘルパーライブラリを使用するか、回避策のいくつかを書き直してください。

私たちはIE BHOを最初に持っていたので、IEのものをFFにマップするようなものがありますが、あなたが使っているものによっては、最も詳細なものから最小のものへの両方のマッピングが必要になることがあります。ここにあなたのためのいくつかの簡単なアイデアがあります

// Normally if you where just doing IE or FF you would use one technique for getting a different interface 
// as we are mixing the code, we have macros which allows you to use a combination of code 
// eg. for IE CComQIPtr<IHTMLDocument2> doc(disp); 
// eg. for FF nsCOMPtr<IHTMLDocument2> doc(do_QueryInterface(disp)); 
// combined in code will be CComQIPtr<IHTMLDocument2> doc(do_QueryInterface(disp)); 
// FF strips off the QI, IE strips out the do_QueryInterface. 
#ifdef MOZILLA 
#define CComPtr      nsCOMPtr 
#define CComQIPtr     nsCOMPtr 

#define IWebBrowser2    nsIDOMWindow 
#define IHTMLWindow2    nsIBrowserDOMWindow 
#define IHTMLDocument2    nsIDOMHTMLDocument 

#define get_Document   GetDocument 
#define get_type     GetType 
#else 
// Pointer handling for nsCOMPtr vs CComPtr/CComQIPtr 
#define getter_AddRefs(x)  (&(x).p)   
#define do_QueryInterface(x)  (x) 
#endif 

おはよう!

+0

投稿してくれてありがとう=)私はこれをやらなければならないと思う。私は、デバッグ段階を楽しみにしています.... – BenoitParis

関連する問題